2100
Can bars have a grey backcolor and black border color for a summary-bar (EBN)

public void init()
{
	COM com_Appearance,com_Bar,com_Bar1,com_Bar2,com_Bars,com_Chart,com_Items;
	anytype var_Appearance,var_Bar,var_Bar1,var_Bar2,var_Bars,var_Chart,var_Items;
	int hSummaryJ,hSummaryK,hSummaryN,hTaskJ,hTaskK;
	str var_s,var_s1,var_s2;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Appearance = exg2antt1.VisualAppearance(); com_Appearance = var_Appearance;
		com_Appearance.RenderType(-2);
		var_s = "gBFLBCJwBAEHhEJAAEhABN0GACAADACAxRDAMgBQKAAzQFAYahuGSGAAGMYxQgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQyDAAUIjOKsIhkGYcZAGQBJCjWGodQLOEgwHI";
		var_s = var_s + "ERQjEyUJAGGQIHhyPYbUbGUpQHKkeRtGqgBgoKhKEouNYgAbGYIwTRsdyfDSXBpEWwbDgkNQwWTDNoRDIUQStCysaYjOpnfrUAJ1P7FdQ1NJkXRhGSSK7maapaiCSZ6S";
		var_s = var_s + "TCMj1FhVKSNJ7DQKhGpgKh/ApgYpQOK4fLNXyRBK4QAyKA6bgPFZOZbFViaXY1V5bNKrcjhHQwAyHJ4XXRdV4YRAkUT4GqiJKGSYcQhuXZWbRqO6ABhef6DRThc6jKpF";
		var_s = var_s + "HIE4llEcojHqSZNgoIxnlgd5thsLREleL43gsYZ9BkaAYkMAgAm+CxGDWWAtiKCRfjcdRgHoHYnicUwgAIEIREAaQYkcQZUHIGRUDQJBOEYRAhDYCxGgMZAkCgdYQhaX";
		var_s = var_s + "QIAYERwQuahXggdgeG6VZ4H4IhdiIGIOB8YIiGiHZZgqYpGF4KYHiKCI+CAU5jCiTQ2g0YhEFyax4gABAEIC";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
		var_s1 = "gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQGh";
		var_s1 = var_s1 + "+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKfa";
		var_s1 = var_s1 + "ZACj4arKejrRDCMAggI=";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s1));
		var_s2 = "gBFLBCJwBAEHhEJAAEhABN8GACAADACAxRDgMQBQKAAzQFAcDBvBgABiHEZoJhUAIIRZGMIjFDcEwxDSMY7jcYAFgkNQwCUtcBIJDEMIoAJLIwyBKkNQ5AabYrmWJpMg";
		var_s2 = var_s2 + "OEAyDSJM70DCEThLD4aZJnOa5ZjmH5LRBQdBRXQMYwIGCiZQpeKqbgMBoJApCIJxdBNLAAf60LLtGJaSpKZouViJNjSBD4HQTL6BQwsKxIDqaaD/WpgFuLTjiRImShcM";
		var_s2 = var_s2 + "QXJYFbwTOyBbDjG7rJr+FptYRbdYYRQ8dy7Cywa6pOa8YwacotZrAdDXHTmHw1PTRNDmTRYRwfKqJZxieqwHoMLYgAC8Ni3OaoDAiCRQGiYZyHKaRSwPBInIYIIjeRgz";
		var_s2 = var_s2 + "BSAYKCEOySEodZbjybo0HefwfhMLQDnKeg9D6LwsCeV5unYQJYH8Lxvj+a5jgSfIYH8T43hOcZ5H+X4nh2fB6F+aABnOAIfFgFgGgGH43nICoCl+eA1n0fBhAgVZ5gSH";
		var_s2 = var_s2 + "oID4FoDCCCBqBuBYUjgfgigGURYg4JoJmKCBFBaChikiNgVEYYpokYMoMCMKJWCkcIjgiZg6E0Do3gUASAg=";
		com_Appearance.Add(3,COMVariant::createFromStr(var_s2));
	exg2antt1.Columns().Add("Task");
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,128);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2001",213)));
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Task"); com_Bar = var_Bar;
			com_Bar.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
			com_Bar.Color(0x1000000);
		var_Bar1 = COM::createFromObject(com_Chart.Bars()).Item("Summary"); com_Bar1 = var_Bar1;
			com_Bar1.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
			com_Bar1.Color(0x2000000);
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar2 = COM::createFromObject(com_Bars).Copy("Summary","SummaryN"); com_Bar2 = var_Bar2;
			com_Bar2.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
			com_Bar2.Color(0x3000000);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		hSummaryJ = com_Items.AddItem("Summary A");
		com_Items.AddBar(hSummaryJ,"Summary",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/2/2001",213)),"J");
		hTaskJ = com_Items.InsertItem(hSummaryJ,,"Task A.1");
		com_Items.AddBar(hTaskJ,"Task",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/5/2001",213)),"J1");
		hTaskJ = com_Items.InsertItem(hSummaryJ,,"Task A.2");
		com_Items.AddBar(hTaskJ,"Task",COMVariant::createFromDate(str2Date("1/4/2001",213)),COMVariant::createFromDate(str2Date("1/8/2001",213)),"J2");
		com_Items.DefineSummaryBars(hSummaryJ,"J",-1,"<*>");
		hSummaryK = com_Items.AddItem("Summary B");
		com_Items.AddBar(hSummaryK,"Summary",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/2/2001",213)),"K");
		hTaskK = com_Items.InsertItem(hSummaryK,,"Task B.1");
		com_Items.AddBar(hTaskK,"Task",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/5/2001",213)),"K1");
		hTaskK = com_Items.InsertItem(hSummaryK,,"Task B.2");
		com_Items.AddBar(hTaskK,"Task",COMVariant::createFromDate(str2Date("1/4/2001",213)),COMVariant::createFromDate(str2Date("1/8/2001",213)),"K2");
		com_Items.DefineSummaryBars(hSummaryK,"K",-1,"<*>");
		hSummaryN = com_Items.AddItem("Summary C");
		com_Items.AddBar(hSummaryN,"SummaryN",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/2/2001",213)),"SN");
		hTaskK = com_Items.InsertItem(hSummaryN,,"Task B.1");
		com_Items.AddBar(hTaskK,"Task",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/5/2001",213)),"N1");
		hTaskK = com_Items.InsertItem(hSummaryN,,"Task B.2");
		com_Items.AddBar(hTaskK,"Task",COMVariant::createFromDate(str2Date("1/4/2001",213)),COMVariant::createFromDate(str2Date("1/8/2001",213)),"N2");
		com_Items.DefineSummaryBars(hSummaryN,"SN",-1,"<*>");
		com_Items.ItemBar(0,"<K*>",33/*exBarColor*/,COMVariant::createFromInt(255));
		com_Items.ItemBar(0,"<N*>",33/*exBarColor*/,COMVariant::createFromInt(8421504));
		com_Items.ExpandItem(0,true);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,128);
}
*/
2099
How can I display UNICODE characters

public void init()
{
	COM com_Items,com_StdFont;
	anytype var_Items,var_StdFont;
	;

	super();

	exg2antt1.BeginUpdate();
	/*should be called during the form's activate method*/ exg2antt1.Chart().PaneWidth(true,0);
	var_StdFont = exg2antt1.Font(); com_StdFont = var_StdFont;
		com_StdFont.Name("Arial Unicode");
		com_StdFont.Size(22);
	exg2antt1.HeaderVisible(false);
	exg2antt1.DefaultItemHeight(48);
	COM::createFromVariant(exg2antt1.Columns().Add("")).Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Ӓӓ");
		com_Items.AddItem("ᦜᦝ;ᦞ");
		com_Items.AddItem("ɮɭ;ɯ");
		com_Items.AddItem("勳勴勵勶");
		com_Items.FormatCell(com_Items.AddItem(COMVariant::createFromStr(exg2antt1.Version())),COMVariant::createFromInt(0),"(value lfind `UNICODE`) < 0 ? `<fgcolor=FF0000><b>!UNICODE!</b> version</fgcolor> required: ` + value : `` ");
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(true,0);
}
*/
2098
How can I display 12-hour time (method 2)

public void init()
{
	COM com_Chart,com_Level;
	anytype var_Chart,var_Level;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2001",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,0);
		com_Chart.LevelCount(2);
		var_Level = COM::createFromObject(com_Chart.Level(0)); com_Level = var_Level;
		com_Level.Label(COMVariant::createFromInt(4096));
		var_Level = com_Chart.Level(1); com_Level = var_Level;
			com_Level.Unit(65536/*exHour*/);
			com_Level.FormatLabel("(0 := hour(dvalue)) < 12 ? ( `<fgcolor=808080>` + ( =:0 = 0 ? 12 : =:0 ) + `</fgcolor>` ) : (=:0 - 12)");
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,0);
}
*/
2097
How can I display 12-hour time (method 1)

public void init()
{
	COM com_Chart,com_Level;
	anytype var_Chart,var_Level;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2001",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,0);
		com_Chart.LevelCount(2);
		var_Level = COM::createFromObject(com_Chart.Level(0)); com_Level = var_Level;
		com_Level.Label(COMVariant::createFromInt(4096));
		var_Level = COM::createFromObject(com_Chart.Level(1)); com_Level = var_Level;
		com_Level.Label("<%h12%>");
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,0);
}
*/
2096
How do I scale to hours

public void init()
{
	COM com_Chart,com_Level;
	anytype var_Chart,var_Level;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2001",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,0);
		com_Chart.LevelCount(2);
		var_Level = COM::createFromObject(com_Chart.Level(0)); com_Level = var_Level;
		com_Level.Label(COMVariant::createFromInt(4096));
		var_Level = COM::createFromObject(com_Chart.Level(1)); com_Level = var_Level;
		com_Level.Label(COMVariant::createFromInt(65536));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,0);
}
*/
2095
How do I display the position of the item with 0-padding

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	COM::createFromVariant(exg2antt1.Columns().Add("Items")).FormatColumn("((1 apos ``) lpad `00`) + `. `  + value");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
		com_Items.AddItem("Item D");
	exg2antt1.EndUpdate();
}
2094
Can I format the label in row 3 below to show day numbers, only for Mondays each week (sample 2)

public void init()
{
	COM com_Chart,com_Level,com_Level1,com_Level2;
	anytype var_Chart,var_Level,var_Level1,var_Level2;
	;

	super();

	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(0,0);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/31/2009",213)));
		com_Chart.LevelCount(3);
		com_Chart.FirstWeekDay(1/*exMonday*/);
		var_Level = com_Chart.Level(0); com_Level = var_Level;
			com_Level.Label("<%mmmm%> <%yyyy%>");
			com_Level.Alignment(1/*CenterAlignment*/);
			com_Level.Unit(16/*exMonth*/);
		var_Level1 = com_Chart.Level(1); com_Level1 = var_Level1;
			com_Level1.Unit(256/*exWeek*/);
			com_Level1.Label("Week <%ww%>");
			com_Level1.Alignment(1/*CenterAlignment*/);
		var_Level2 = com_Chart.Level(2); com_Level2 = var_Level2;
			com_Level2.Unit(4096/*exDay*/);
			com_Level2.FormatLabel("weekday(dvalue) = 1 ? day(dvalue): ''");
		com_Chart.UnitWidth(23);
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(0,0);
}
*/
2093
Can I format the label in row 3 below to show day numbers, only for Mondays each week (sample 1)

public void init()
{
	COM com_Chart,com_Level,com_Level1,com_Level2;
	anytype var_Chart,var_Level,var_Level1,var_Level2;
	;

	super();

	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(0,0);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/31/2009",213)));
		com_Chart.LevelCount(3);
		com_Chart.FirstWeekDay(1/*exMonday*/);
		var_Level = com_Chart.Level(0); com_Level = var_Level;
			com_Level.Label("<%mmmm%> <%yyyy%>");
			com_Level.Alignment(1/*CenterAlignment*/);
			com_Level.Unit(16/*exMonth*/);
		var_Level1 = com_Chart.Level(1); com_Level1 = var_Level1;
			com_Level1.Unit(256/*exWeek*/);
			com_Level1.Label("Week <%ww%>");
			com_Level1.Alignment(1/*CenterAlignment*/);
		var_Level2 = com_Chart.Level(2); com_Level2 = var_Level2;
			com_Level2.Unit(4096/*exDay*/);
			com_Level2.FormatLabel("weekday(dvalue) = 1 ? value : ''");
		com_Chart.UnitWidth(23);
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(0,0);
}
*/
2092
How can I change the caption for all bars

public void init()
{
	COM com_Bar,com_Bars,com_Chart,com_Items;
	anytype var_Bar,var_Bars,var_Chart,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.Columns().Add("Tasks");
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("8/1/2017",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,128);
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar = COM::createFromObject(com_Bars).Add("Task%Progress"); com_Bar = var_Bar;
			com_Bar.Shortcut("Task");
			com_Bar.Def(14/*exBarShowPercentCaption*/,COMVariant::createFromBoolean(true));
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(com_Items.AddItem("Task 1"),"Task",COMVariant::createFromDate(str2Date("8/2/2017",213)),COMVariant::createFromDate(str2Date("8/6/2017",213)));
		com_Items.AddBar(com_Items.AddItem("Task 2"),"Task",COMVariant::createFromDate(str2Date("8/3/2017",213)),COMVariant::createFromDate(str2Date("8/9/2017",213)));
		com_Items.AddBar(com_Items.AddItem("Task 3"),"Task",COMVariant::createFromDate(str2Date("8/4/2017",213)),COMVariant::createFromDate(str2Date("8/13/2017",213)));
		com_Items.AddBar(com_Items.AddItem("Task 4"),"Task",COMVariant::createFromDate(str2Date("8/5/2017",213)),COMVariant::createFromDate(str2Date("8/16/2017",213)));
		com_Items.ItemBar(0,"<*>",14/*exBarShowPercentCaption*/,COMVariant::createFromBoolean(false));
		com_Items.ItemBar(0,"<*>",3/*exBarCaption*/,"<%= %C0 replace `Task` with `Task<off 4><b>` %>");
		com_Items.ItemBar(0,"<*>",4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,128);
}
*/
2091
Can't get the +/- to be displayed on a divider item. What else can I do

public void init()
{
	COM com_Columns,com_Items;
	anytype var_Columns,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exg2antt1.DrawGridLines(-1/*exAllLines*/);
	exg2antt1.TreeColumnIndex(0);
	exg2antt1.MarkSearchColumn(false);
	exg2antt1.FullRowSelect(0/*exColumnSel*/);
	exg2antt1.HeaderAppearance(-1/*0xffffffff | Bump | Sunken*/);
	/*should be called during the form's activate method*/ exg2antt1.Chart().PaneWidth(true,0);
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("C1")).Width(32);
		COM::createFromVariant(com_Columns.Add("C2")).FormatColumn("1 index ``");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Cell 1");
		com_Items.CellSingleLine(h,COMVariant::createFromInt(1),false);
		h = com_Items.AddItem("This is bit of text merges all cells in the item (divider shows no +/-)");
		com_Items.ItemDivider(h,0);
		com_Items.ItemBackColor(h,WinApi::RGB2int(240,240,240));
		com_Items.ItemDividerLine(h,0/*EmptyLine*/);
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Cell 3");
		h = com_Items.AddItem("This is bit of text merges all cells in the item (merge shows +/-)");
		com_Items.ItemBackColor(h,WinApi::RGB2int(240,240,240));
		com_Items.CellMerge(h,COMVariant::createFromInt(0),COMVariant::createFromInt(1));
		com_Items.InsertItem(h,,"Child 3");
		com_Items.InsertItem(h,,"Child 4");
		com_Items.ExpandItem(h,true);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(true,0);
}
*/
2090
How can I display one or more columns on the same bar

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	int l;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.ItemDividerLine(_Item,0/*EmptyLine*/);
		com_Items.AddBar(_Item,"Summary",COMVariant::createFromDate(str2Date("12/2/2017",213)),COMVariant::createFromDate(str2Date("12/2/2017",213)));
		com_Items.DefineSummaryBars(_Item,"",-3,"");
		l = com_Items.GroupItem(_Item);
		com_Items.CellSingleLine(_Item,l,false);
		com_Items.CellBold(_Item,l,true);
		com_Items.ItemBackColor(_Item,WinApi::RGB2int(190,190,190));
	exg2antt1.Chart().ItemBackColor(_Item,WinApi::RGB2int(190,190,190));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/10/2017",213)));
}

public void init()
{
	COM com_Bar,com_Bar1,com_Chart,com_Column,com_Column1,com_Columns,com_Editor,com_Items;
	anytype var_Bar,var_Bar1,var_Chart,var_Column,var_Column1,var_Columns,var_Editor,var_Items;
	int h;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_s = "gBFLBCJwBAEHhEJAAEhABOUGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADCMQwAFBIbhrE4ZBjHGQRUgyI43RhHUBzVI";
	var_s = var_s + "UBxDEaTZLlEYJBgeHYhDJPcaUVDcWQHGyeZwjSgpKoWSJIU5NcggPDgEwTKCmKlTAKoSzJMyEmwWRAdVTZLSEaxierKPhyWT/XgAF4PfDFKRXFqXY5mKZJFqKOI8TxIN";
	var_s = var_s + "gxPQMGyrBqraLqKwQGrGCQKSBhUZ3dS2JR3OSlYRuQAMVgOXoDZhPWZXbDtSzPE63NgtOR5DiGWalABoeoxRa9cz3ViCJSrGTqIoINIzZLHFQbPpdAYdP6BeIjXhhZxB";
	var_s = var_s + "BuLZXmEOh9CcNoni2N4MjWVodh+DpfBeLJinsWR9AyYwVAkGBhEAFphGiRogDEGBamkFgtjcZgHiMbgehYaQhAIEIREAaQYkcQZUHIGRUGQDBOEaBAhDYDxGkMZAkCge";
	var_s = var_s + "oagYZAYEYAYIAWGhemICIFj8WIiCiFR5gkIhogmBoKGKJx2C6C5hniMgggqYwog0UoNGMZJiDiCZRgOLY0ECUAQICA==";
	exg2antt1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Summary"); com_Bar = var_Bar;
			com_Bar.StartShape(0/*exShapeIconEmpty*/);
			com_Bar.EndShape(0/*exShapeIconEmpty*/);
			com_Bar.Shape(1/*exShapeSolid*/);
			com_Bar.Color(0x1000000);
			com_Bar.Def(3/*exBarCaption*/,"<%=%513%>");
			com_Bar.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
		var_Bar1 = COM::createFromObject(com_Chart.Bars()).Item("Task"); com_Bar1 = var_Bar1;
			com_Bar1.Pattern(32/*exPatternBox*/);
			com_Bar1.Color(WinApi::RGB2int(164,164,164));
			com_Bar1.StartColor(WinApi::RGB2int(240,240,240));
			com_Bar1.EndColor(com_Bar1.StartColor());
			com_Bar1.Def(3/*exBarCaption*/,"<%= `<font ;6><fgcolor=0000FF><i>` + %C0 + ` ` + %C1 + ` ` + %C2 %>");
			com_Bar1.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(13));
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		var_Editor = COM::createFromObject(COM::createFromVariant(com_Columns.Add("C2"))).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		var_Editor = COM::createFromObject(COM::createFromVariant(com_Columns.Add("C3"))).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		var_Column = COM::createFromVariant(com_Columns.Add("Pos")); com_Column = var_Column;
			com_Column.FormatColumn("1 pos ``");
			com_Column.AllowGroupBy(false);
			com_Column.Position(0);
			com_Column.Width(48);
			com_Column.AllowSizing(false);
	exg2antt1.SortBarVisible(true);
	exg2antt1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exg2antt1.AllowGroupBy(true);
	exg2antt1.HasLines(0/*exNoLine*/);
	exg2antt1.LinesAtRoot(0/*exNoLinesAtRoot*/);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.3");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.4");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.5");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.6");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.7");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.8");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.3");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.4");
	var_Column1 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.SortOrder(1/*SortAscending*/);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2089
How can I associate a box/note to a date into the control's header

public void init()
{
	COM com_Chart,com_Items,com_Items1,com_Note,com_Notes;
	anytype var_Chart,var_Items,var_Items1,var_Note,var_Notes;
	int hLocked;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ScrollBySingleLine(true);
	exg2antt1.Columns().Add("Task");
	exg2antt1.HeaderHeight(17);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2001",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,96);
		com_Chart.LevelCount(2);
		com_Chart.SelBackColor(exg2antt1.SelBackColor());
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.SelectItem(com_Items.AddItem("Item 2"),true);
		com_Items.AddItem("Item 3");
	var_Notes = exg2antt1.Chart().Notes(); com_Notes = var_Notes;
		var_Items1 = exg2antt1.Items(); com_Items1 = var_Items1;
			com_Items1.LockedItemCount(0/*exTop*/,1);
			hLocked = com_Items1.LockedItem(0/*exTop*/,0);
			com_Items1.ItemHeight(hLocked,1);
		var_Note = com_Notes.Add("header",hLocked,COMVariant::createFromDate(str2Date("1/7/2001",213)),"Date:<br><%dd%>/<%mm%><br><b><%yyyy%></b>"); com_Note = var_Note;
			com_Note.PartVisible(0/*exNoteStart*/,true);
			com_Note.PartText(0/*exNoteStart*/,"<b><%d%></b>");
			com_Note.PartCanMove(1/*exNoteEnd*/,true);
			com_Note.PartCanMove(0/*exNoteStart*/,true);
			com_Note.PartVOffset(0/*exNoteStart*/,-9);
			com_Note.PartVOffset(1/*exNoteEnd*/,20);
			com_Note.PartHOffset(1/*exNoteEnd*/,20);
			com_Note.PartBackColor(0/*exNoteStart*/,WinApi::RGB2int(255,255,0));
			com_Note.PartFixedWidth(0/*exNoteStart*/,18);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,96);
}
*/
2088
How can I define a column of button type

// ButtonClick event - Occurs when user clicks on the cell's button.
void onEvent_ButtonClick(int   _Item,int   _ColIndex,COMVariant   _Key)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		print( com_Items.CellValue(_Item,_ColIndex) );
}

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Button")); com_Column = var_Column;
		com_Column.Def(2/*exCellHasButton*/,COMVariant::createFromBoolean(true));
		com_Column.Def(3/*exCellButtonAutoWidth*/,COMVariant::createFromBoolean(false));
		com_Column.FormatColumn("``");
		com_Column.AllowSizing(false);
		com_Column.Width(48);
	COM::createFromVariant(exg2antt1.Columns().Add("Second")).FormatColumn("` Item ` + 1 index ``");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Button 1");
		com_Items.AddItem("Button 2");
		com_Items.AddItem("Button 3 ");
	exg2antt1.EndUpdate();
}
2087
Is it possible to configure different colour/icon when there is a active filter

// FilterChange event - Occurs when the filter was changed.
void onEvent_FilterChange()
{
	;
	exg2antt1.Background(0/*exHeaderFilterBarButton*/,exg2antt1.FormatABC("value = 0 ? 0x1000001 : 0x10000FF ",exg2antt1.Columns().Item(COMVariant::createFromInt(0)).FilterType()));
}

public void init()
{
	COM com_Appearance,com_Column,com_Column1,com_Items;
	anytype var_Appearance,var_Column,var_Column1,var_Items;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Appearance = exg2antt1.VisualAppearance(); com_Appearance = var_Appearance;
		com_Appearance.RenderType(-16777216);
		var_s = "gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg";
		var_s = var_s + "mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd";
		var_s = var_s + "r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
	exg2antt1.DrawGridLines(-1/*exAllLines*/);
	exg2antt1.ShowFocusRect(false);
	exg2antt1.Background(0/*exHeaderFilterBarButton*/,0x1000001);
	exg2antt1.Background(32/*exCursorHoverColumn*/,-1);
	exg2antt1.HeaderAppearance(4/*Etched*/);
	exg2antt1.BackColorHeader(WinApi::RGB2int(255,255,255));
	exg2antt1.HeaderVisible(1/*exHeaderVisibleExtendLevels*/);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Filter")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.AllowSort(false);
		com_Column.AllowDragging(false);
		com_Column.FilterList(256/*exShowCheckBox*/);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	var_Column1 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.Filter("Item B");
		com_Column1.FilterType(240/*exFilter*/);
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}
2086
ADODB Requery sample

// ButtonClick event - Occurs when user clicks on the cell's button.
void onEvent_ButtonClick(int   _Item,int   _ColIndex,COMVariant   _Key)
{
	COM com_cmd;
	anytype cmd;
	;
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	cmd = COM::createFromObject(new ADODB.Command()); com_cmd = cmd;
		cmd.ActiveConnection(COM::createFromVariant(exg2antt1.DataSource().ActiveConnection()));
		cmd.CommandText("INSERT INTO Orders (EmployeeID) VALUES(12345)");
		cmd.CommandType(1/*adCmdText*/);
		cmd.Execute();
	exg2antt1.DataSource().Requery();
}

// Error event - Fired when an internal error occurs.
void onEvent_Error(int   _Error,str   _Description)
{
	;
	print( _Description );
}

public void init()
{
	COM com_ConditionalFormat,com_Items,com_rs;
	anytype rs,var_ConditionalFormat,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.HeaderAppearance(4/*Etched*/);
	exg2antt1.ColumnAutoResize(false);
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Select * From Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb",1/*adOpenKeyset*/,3/*adLockOptimistic*/);
	exg2antt1.DataSource(rs);
	var_ConditionalFormat = COM::createFromObject(exg2antt1.ConditionalFormats()).Add("%1=12345"); com_ConditionalFormat = var_ConditionalFormat;
	com_ConditionalFormat.BackColor(WinApi::RGB2int(240,240,240));
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(0/*exTop*/,1);
		h = com_Items.LockedItem(0/*exTop*/,0);
		com_Items.ItemDivider(h,0);
		com_Items.CellHasButton(h,COMVariant::createFromInt(0),true);
		com_Items.CellValue(h,COMVariant::createFromInt(0),"Requery (add a new record, using ADODB.Command)");
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
	exg2antt1.EndUpdate();
}
2085
I am skinning the control's header-bar, but the background of the header-bar is shown on each item in the filter-bar drop down panel. What can I do

public void init()
{
	COM com_Appearance,com_Column,com_Items;
	anytype var_Appearance,var_Column,var_Items;
	str var_s,var_s1;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Appearance = exg2antt1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxRDgMQBQKAAzQFAYcBqGqGAAGQZxYgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL";
		var_s = var_s + "UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQGhsCYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU8lORLUi+M4zSBPcZVTRtGShPDBK";
		var_s = var_s + "TjMKKYgkG4lVpRNa0PC1GTzQ6mazkKQLRADDIDVbAeL3LiMBy9LyLLItQALByua5mWhbcZyBCOPgBTrRb5zO58FjuTK7YLjMB7NrUNYtFaUMy2OpOCADIaecTNcaWLxP";
		var_s = var_s + "F2MY1HWYxVj2Jw3DuRJonKYBgggSRAlIYw6B0ThGFgPAkFUDAhBMfZRiGNAkFECZnm4YQdneJwqnsSQrGAAhWAIJBJBIQgFCQIBiEIAglgqYo0i4V4MEgRI9gSToYFSb";
		var_s = var_s + "4Fk6Y4+BmBZhFOJgTC8TBogQAArgqco4muCZOkOMJtgmYpIjYKg7GKE4uCUK4AAKKg2DwI4DiCZw5k6KJ2D6D4OHiag4DwIxiiQAArAqMosnEPBPAOIhOg+DozjIJ4PG";
		var_s = var_s + "SY4iEwPAkhKLhHUUSQsnKFCnkYU9MjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaI";
		var_s = var_s + "CokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEs";
		var_s = var_s + "HJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQgp";
		var_s = var_s + "DOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAM";
		var_s = var_s + "R1EOZxWi+bx7HcWQ8msfRYnnDhQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARViHH4";
		var_s = var_s + "HQOYmxuCpF2MsecEQVBvGQCcIQvA6i2CAAIARAQ=";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
		var_s1 = "gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzQFAYcBqGqGAAGQZxYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMwwDhEIwjHCEEhsGIbJAGQBJCjWGodQLOEgzNC";
		var_s1 = var_s1 + "0IxNFCQILhEZJADKII8TTOU5UPRESwTE4cKBmKhQCo2NpKR7VUTxCKQahLLivoCjBT8EzHMqtIzrCA6MpaP4pQjKcqwHJ8YyHEi0ZrjazKaj6T5AXDUcaWbbNVx3PK3a";
		var_s1 = var_s1 + "ioOpLZrqOZZYzYFoABTuJzPMSyIhxXD8cweaZvSpLExVYK9BY3PbKMgxC77QgTIpDaQMNS6PjtF43PAALLFUaNYzoOKzABMHATBIXAYJCwIIR5G7ID4BbQcCQAHL9DBa";
		var_s1 = var_s1 + "EEIAEEISgGhMGZQmocgymmIRQkIEQ2BcGgbEIRQci8XaMBqTRVgSAZHG+S5pnOep+D6f4vjec5zn0fpfmgBgAH6TRoBYBoAh+eAmAiAgPFgNArgOQpIESdoEmCOAOAqB";
		var_s1 = var_s1 + "YfFGAgaEaBgYHYFYFmIB5UiGCJUgKCgmgeYoHk4BgCmKRQiCwApgHgYgyH8B54lQU4NkMeJlBoDgjkiXBTg0R54iYIR+koeQVBoKpkgkChKhEJBkF4SFEjkDgJhFQoeE";
		var_s1 = var_s1 + "mDJlBeehUhWJQJGIXoICWOQ6FeFIlhkfhlDsSJpiQVoamaSY2G6G5nAmRhpCOH5pkwVYdmeCZmHqHpnkmdhzhmaAIFiax8AABAEICA==";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s1));
	exg2antt1.BackColorHeader(0x1000000);
	exg2antt1.ForeColorHeader(WinApi::RGB2int(128,128,128));
	exg2antt1.Background(0/*exHeaderFilterBarButton*/,0x2000000);
	exg2antt1.Background(26/*exBackColorFilter*/,WinApi::RGB2int(255,255,255));
	exg2antt1.Background(27/*exForeColorFilter*/,WinApi::RGB2int(0,0,1));
	exg2antt1.Background(20/*exSelBackColorFilter*/,0x1ff8000);
	exg2antt1.Background(21/*exSelForeColorFilter*/,WinApi::RGB2int(240,240,240));
	exg2antt1.Background(32/*exCursorHoverColumn*/,-1);
	exg2antt1.HeaderHeight(24);
	exg2antt1.BackColorLevelHeader(exg2antt1.BackColor());
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Filter")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
		com_Column.Def(52/*exHeaderPaddingLeft*/,COMVariant::createFromInt(2));
		com_Column.Def(53/*exHeaderPaddingRight*/,COMVariant::createFromInt(2));
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("A");
		com_Items.AddItem("B");
		com_Items.AddItem("C");
		com_Items.AddItem("D");
	exg2antt1.EndUpdate();
}
2084
I specify the ItemHeight for each row, but as soon as I click the chart section, the item's height is restored to default (not working). What could be the cause

public void init()
{
	COM com_Bar,com_Chart,com_Items;
	anytype var_Bar,var_Chart,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ScrollBySingleLine(true);
	exg2antt1.Columns().Add("Types");
	exg2antt1.DrawGridLines(1/*exHLines*/);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.DrawGridLines(1/*exHLines*/);
		com_Chart.AllowCreateBar(1/*exCreateBarAuto*/);
		com_Chart.AllowLinkBars(false);
		com_Chart.ResizeUnitScale(65536/*exHour*/);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,112);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2001",213)));
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Task"); com_Bar = var_Bar;
			com_Bar.OverlaidType(3/*exOverlaidBarsStack*/);
			com_Bar.Def(3/*exBarCaption*/,"<%=%9%>");
			com_Bar.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("ItemMinHeight");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/7/2001",213)),COMVariant::createFromDate(str2Date("1/10/2001",213)),"A1");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/8/2001",213)),COMVariant::createFromDate(str2Date("1/12/2001",213)),"A2");
		com_Items.ItemMinHeight(h,64);
		com_Items.AddBar(com_Items.AddItem("Default (One)"),"Task",COMVariant::createFromDate(str2Date("1/7/2001",213)),COMVariant::createFromDate(str2Date("1/10/2001",213)),"A3");
		h = com_Items.AddItem("Default (Two)");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/7/2001",213)),COMVariant::createFromDate(str2Date("1/10/2001",213)),"A4");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/8/2001",213)),COMVariant::createFromDate(str2Date("1/12/2001",213)),"A5");
		h = com_Items.AddItem("ItemFixedHeight");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/7/2001",213)),COMVariant::createFromDate(str2Date("1/10/2001",213)),"A6");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/8/2001",213)),COMVariant::createFromDate(str2Date("1/12/2001",213)),"A7");
		com_Items.ItemMinHeight(h,20);
		com_Items.ItemMaxHeight(h,20);
		h = com_Items.AddItem("ItemMaxHeight");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/7/2001",213)),COMVariant::createFromDate(str2Date("1/10/2001",213)),"A8");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/8/2001",213)),COMVariant::createFromDate(str2Date("1/12/2001",213)),"A9");
		com_Items.ItemMaxHeight(h,24);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,112);
}
*/
2083
The ItemHeight property is not working (method 2)

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	exg2antt1.ScrollBySingleLine(true);
	COM::createFromVariant(exg2antt1.Columns().Add("Column")).Width(128);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellSingleLine(com_Items.AddItem("This is a bit of text that should break the line"),COMVariant::createFromInt(0),0/*exCaptionWordWrap*/);
		h = com_Items.AddItem("");
		com_Items.ItemDivider(h,0);
		com_Items.SelectableItem(h,false);
		com_Items.ItemDividerLineAlignment(h,1/*DividerCenter*/);
		com_Items.ItemHeight(h,3);
		com_Items.CellSingleLine(com_Items.AddItem("This is a bit of text that should break the line"),COMVariant::createFromInt(0),0/*exCaptionWordWrap*/);
	exg2antt1.EndUpdate();
}
2082
The ItemHeight property is not working (method 1)

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	exg2antt1.ScrollBySingleLine(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Column")); com_Column = var_Column;
		com_Column.Width(128);
		com_Column.Def(16/*exCellSingleLine*/,COMVariant::createFromInt(0));
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("This is a bit of text that should break the line");
		h = com_Items.AddItem("");
		com_Items.ItemDivider(h,0);
		com_Items.SelectableItem(h,false);
		com_Items.ItemDividerLineAlignment(h,1/*DividerCenter*/);
		com_Items.ItemMinHeight(h,3);
		com_Items.ItemMaxHeight(h,3);
		com_Items.AddItem("This is a bit of text that should break the line");
	exg2antt1.EndUpdate();
}
2081
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeCheckColumns

public void init()
{
	COM com_Columns;
	anytype var_Columns;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	exg2antt1.HeaderAppearance(4/*Etched*/);
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("City");
		COM::createFromVariant(com_Columns.Add("Start")).Visible(false);
		COM::createFromVariant(com_Columns.Add("End")).Visible(false);
	exg2antt1.Description(26/*exColumnsFloatBar*/,"Show/Hide");
	exg2antt1.ColumnsFloatBarSortOrder(1/*SortAscending*/);
	exg2antt1.ColumnsFloatBarVisible(2/*exColumnsFloatBarVisibleIncludeCheckColumns*/);
	exg2antt1.EndUpdate();
}
2080
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeHiddenColumn

public void init()
{
	COM com_Columns;
	anytype var_Columns;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	exg2antt1.HeaderAppearance(4/*Etched*/);
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("City");
		COM::createFromVariant(com_Columns.Add("Start")).Visible(false);
		COM::createFromVariant(com_Columns.Add("End")).Visible(false);
	exg2antt1.Description(26/*exColumnsFloatBar*/,"Show");
	exg2antt1.ColumnsFloatBarVisible(-1/*exColumnsFloatBarVisibleIncludeHiddenColumns*/);
	exg2antt1.ColumnsFloatBarSortOrder(1/*SortAscending*/);
	exg2antt1.EndUpdate();
}
2079
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeGroupByColumns

public void init()
{
	COM com_Column,com_Columns;
	anytype var_Column,var_Columns;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	exg2antt1.HeaderAppearance(4/*Etched*/);
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("City");
		com_Columns.Add("Start");
		com_Columns.Add("End");
	exg2antt1.AllowGroupBy(true);
	exg2antt1.SortBarVisible(true);
	exg2antt1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exg2antt1.BackColorSortBar(WinApi::RGB2int(250,250,250));
	exg2antt1.Description(26/*exColumnsFloatBar*/,"Group-By");
	exg2antt1.ColumnsFloatBarVisible(1/*exColumnsFloatBarVisibleIncludeGroupByColumns*/);
	exg2antt1.ColumnsFloatBarSortOrder(1/*SortAscending*/);
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item("City"); com_Column = var_Column;
	com_Column.SortOrder(1/*SortAscending*/);
	exg2antt1.EndUpdate();
}
2078
How can I advance to the next line, once the user presses the ENTER key

// KeyDown event - Occurs when the user presses a key while an object has the focus.
void onEvent_KeyDown(COMVariant /*short*/   _KeyCode,int   _Shift)
{
	;
	print( "KeyCode Before:" );
	print( _KeyCode );
	_KeyCode = exg2antt1.FormatABC("value = 13 ? 40 : value",_KeyCode);
	print( "KeyCode After:" );
	print( _KeyCode );
}

public void init()
{
	COM com_Columns,com_Editor,com_Editor1,com_Items;
	anytype var_Columns,var_Editor,var_Editor1,var_Items;
	int h0;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		var_Editor = COM::createFromVariant(com_Columns.Add("A")).Editor(); com_Editor = var_Editor;
			com_Editor.Appearance(4/*EtchedApp*/);
			com_Editor.EditType(1/*EditType*/);
		var_Editor1 = COM::createFromVariant(com_Columns.Add("B")).Editor(); com_Editor1 = var_Editor1;
			com_Editor1.Appearance(4/*EtchedApp*/);
			com_Editor1.EditType(1/*EditType*/);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h0 = com_Items.AddItem("Item A.1");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Item B.1");
		h0 = com_Items.AddItem("Item A.2");
		com_Items.CellValue(h0,COMVariant::createFromInt(1),"Item B.2");
	exg2antt1.EndUpdate();
}
2077
I am using AddNew to add new records, but I can not see them into the control

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(_Item,"Task",com_Items.CellValue(_Item,COMVariant::createFromInt(1)),com_Items.CellValue(_Item,COMVariant::createFromInt(2)));
}

// ButtonClick event - Occurs when user clicks on the cell's button.
void onEvent_ButtonClick(int   _Item,int   _ColIndex,COMVariant   _Key)
{
	COM com_Recordset;
	anytype var_Recordset;
	;
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	var_Recordset = exg2antt1.DataSource(); com_Recordset = var_Recordset;
		com_Recordset.AddNew();
		com_Recordset.Fields().Item("Name").Value("Task New");
		com_Recordset.Update();
}

public void init()
{
	COM com_Chart,com_Column,com_Fields,com_Items,com_Recordset,com_rs;
	anytype rs,var_Chart,var_Column,var_Fields,var_Items,var_Recordset;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.HeaderAppearance(4/*Etched*/);
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		var_Fields = rs.Fields(); com_Fields = var_Fields;
			com_Fields.Append("Name",8/*adBSTR*/);
			com_Fields.Append("Start",7/*adDate*/);
			com_Fields.Append("End",7/*adDate*/);
		rs.Open();
		rs.AddNew();
		rs.Fields().Item("Name").Value("Task A");
		rs.Fields().Item("Start").Value(COMVariant::createFromDate(str2Date("1/4/2001",213)));
		rs.Fields().Item("End").Value(COMVariant::createFromDate(str2Date("1/10/2001",213)));
		rs.Update();
		rs.AddNew();
		rs.Fields().Item("Name").Value("Task B");
		rs.Fields().Item("Start").Value(COMVariant::createFromDate(str2Date("1/5/2001",213)));
		rs.Fields().Item("End").Value(COMVariant::createFromDate(str2Date("1/11/2001",213)));
		rs.Update();
	exg2antt1.DataSource(rs);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2001",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item("Start"); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item("End"); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(0/*exTop*/,1);
		h = com_Items.LockedItem(0/*exTop*/,0);
		com_Items.ItemDivider(h,0);
		com_Items.CellHasButton(h,COMVariant::createFromInt(0),true);
		com_Items.CellValue(h,COMVariant::createFromInt(0),"AddNew");
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
	exg2antt1.DetectAddNew(true);
	exg2antt1.DetectDelete(true);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2076
How can I create a new ADO recordset

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(_Item,"Task",com_Items.CellValue(_Item,COMVariant::createFromInt(1)),com_Items.CellValue(_Item,COMVariant::createFromInt(2)));
}

public void init()
{
	COM com_Chart,com_Column,com_Fields,com_Items,com_rs;
	anytype rs,var_Chart,var_Column,var_Fields,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		var_Fields = rs.Fields(); com_Fields = var_Fields;
			com_Fields.Append("Name",8/*adBSTR*/);
			com_Fields.Append("Start",7/*adDate*/);
			com_Fields.Append("End",7/*adDate*/);
		rs.Open();
		rs.AddNew();
		rs.Fields("Task A");
		rs.Fields(str2Date("1/4/2001",213));
		rs.Fields(str2Date("1/10/2001",213));
		rs.Update();
		rs.AddNew();
		rs.Fields("Task B");
		rs.Fields(str2Date("1/5/2001",213));
		rs.Fields(str2Date("1/11/2001",213));
		rs.Update();
	exg2antt1.DataSource(rs);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2001",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item("Start"); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item("End"); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2075
Do do I get the DAO version I have installed

public void init()
{
	;

	super();

	print( new DAO.PrivDBEngine().Version() );
	print( new DAO.PrivDBEngine().Version() );
	print( new DAO.PrivDBEngine().Version() );
}
2074
How do I get a list of interfaces the object implemenets

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(_Item,"Task",com_Items.CellValue(_Item,COMVariant::createFromInt(2)),com_Items.CellValue(_Item,COMVariant::createFromInt(4)));
}

public void init()
{
	COM com_Chart,com_Column,com_Items,com_PrivDBEngine,com_rs;
	anytype rs,var_Chart,var_Column,var_Items,var_PrivDBEngine;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	// Add 'Microsoft Office 15.0 Access database engine Object Library(ACEDAO.DLL)' reference to your project.
	var_PrivDBEngine = COM::createFromObject(new DAO.PrivDBEngine()); com_PrivDBEngine = var_PrivDBEngine;
		rs = com_PrivDBEngine.OpenDatabase("C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb").OpenRecordset("Orders"); com_rs = rs;
	print( new Object() );
	exg2antt1.DataSource(rs);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("8/4/1994",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(4)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2073
Do do I get the ADO version I have installed

public void init()
{
	;

	super();

	print( "ADO Version:" );
	print( new ADODB.Connection().Version() );
}
2072
DAO, ACCDB, 120

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(_Item,"Task",com_Items.CellValue(_Item,COMVariant::createFromInt(2)),com_Items.CellValue(_Item,COMVariant::createFromInt(4)));
}

public void init()
{
	COM com_Chart,com_Column,com_Items,com_PrivDBEngine,com_rs;
	anytype rs,var_Chart,var_Column,var_Items,var_PrivDBEngine;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	// Add 'Microsoft Office 15.0 Access database engine Object Library(ACEDAO.DLL)' reference to your project.
	var_PrivDBEngine = COM::createFromObject(new DAO.PrivDBEngine()); com_PrivDBEngine = var_PrivDBEngine;
		rs = com_PrivDBEngine.OpenDatabase("C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb").OpenRecordset("Orders"); com_rs = rs;
	exg2antt1.DataSource(rs);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("8/4/1994",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(4)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2071
DAO, MDB, 120

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(_Item,"Task",com_Items.CellValue(_Item,COMVariant::createFromInt(2)),com_Items.CellValue(_Item,COMVariant::createFromInt(4)));
}

public void init()
{
	COM com_Chart,com_Column,com_Items,com_PrivDBEngine,com_rs;
	anytype rs,var_Chart,var_Column,var_Items,var_PrivDBEngine;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	// Add 'Microsoft Office 15.0 Access database engine Object Library(ACEDAO.DLL)' reference to your project.
	var_PrivDBEngine = COM::createFromObject(new DAO.PrivDBEngine()); com_PrivDBEngine = var_PrivDBEngine;
		rs = com_PrivDBEngine.OpenDatabase("C:\\Program Files\\Exontrol\\ExG2antt\\sample\\Access\\misc.mdb").OpenRecordset("Orders"); com_rs = rs;
	exg2antt1.DataSource(rs);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("8/4/1994",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(4)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2070
DAO, MDB

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(_Item,"Task",com_Items.CellValue(_Item,COMVariant::createFromInt(2)),com_Items.CellValue(_Item,COMVariant::createFromInt(4)));
}

public void init()
{
	COM com_Chart,com_Column,com_Items,com_PrivDBEngine,com_rs;
	anytype rs,var_Chart,var_Column,var_Items,var_PrivDBEngine;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	// Add 'Microsoft DAO 3.6 Object Library(dao360.dll)' reference to your project.
	var_PrivDBEngine = COM::createFromObject(new DAO.PrivDBEngine()); com_PrivDBEngine = var_PrivDBEngine;
		rs = com_PrivDBEngine.OpenDatabase("C:\\Program Files\\Exontrol\\ExG2antt\\sample\\Access\\misc.mdb").OpenRecordset("Orders"); com_rs = rs;
	exg2antt1.DataSource(rs);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("8/4/1994",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(4)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2069
ADODB, ACCDB, x64

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(_Item,"Task",com_Items.CellValue(_Item,COMVariant::createFromInt(2)),com_Items.CellValue(_Item,COMVariant::createFromInt(4)));
}

public void init()
{
	COM com_Chart,com_Column,com_Items,com_rs;
	anytype rs,var_Chart,var_Column,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb",1/*adOpenKeyset*/,1/*adLockReadOnly*/);
	exg2antt1.DataSource(rs);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("8/4/1994",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(4)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2068
ADOR, ACCDB

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(_Item,"Task",com_Items.CellValue(_Item,COMVariant::createFromInt(2)),com_Items.CellValue(_Item,COMVariant::createFromInt(4)));
}

public void init()
{
	COM com_Chart,com_Column,com_Items,com_rs;
	anytype rs,var_Chart,var_Column,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exg2antt1.DataSource(rs);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("8/4/1994",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(4)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2067
ADODB, MDB

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(_Item,"Task",com_Items.CellValue(_Item,COMVariant::createFromInt(2)),com_Items.CellValue(_Item,COMVariant::createFromInt(4)));
}

public void init()
{
	COM com_Chart,com_Column,com_Items,com_rs;
	anytype rs,var_Chart,var_Column,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exg2antt1.DataSource(rs);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("8/4/1994",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(4)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2066
ADOR, MDB

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(_Item,"Task",com_Items.CellValue(_Item,COMVariant::createFromInt(2)),com_Items.CellValue(_Item,COMVariant::createFromInt(4)));
}

public void init()
{
	COM com_Chart,com_Column,com_Items,com_rs;
	anytype rs,var_Chart,var_Column,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exg2antt1.DataSource(rs);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("8/4/1994",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(4)); com_Column = var_Column;
	com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2065
I am using exCellValueToItemBarProperty, Is it possible to “disable” this synchronisation for one (or several) item (sample-2)

public void init()
{
	COM com_Chart,com_Columns,com_Items;
	anytype var_Chart,var_Columns,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Tasks");
		COM::createFromVariant(com_Columns.Add("Start")).Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
		COM::createFromVariant(com_Columns.Add("End")).Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("9/20/2006",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(0,196);
		com_Chart.AllowCreateBar(1/*exCreateBarAuto*/);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AllowCellValueToItemBar(true);
		com_Items.AddBar(com_Items.AddItem("Task 1"),"Task",COMVariant::createFromDate(str2Date("9/21/2006",213)),COMVariant::createFromDate(str2Date("9/24/2006",213)));
		h = com_Items.AddItem("Task 2");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("9/22/2006",213)),COMVariant::createFromDate(str2Date("9/25/2006",213)));
		com_Items.ItemBold(h,true);
		com_Items.CellValueToItemBar(h,COMVariant::createFromInt(1),1/*exBarStart*/,"newbar");
		com_Items.CellValueToItemBar(h,COMVariant::createFromInt(2),2/*exBarEnd*/,"newbar");
		com_Items.AddBar(com_Items.AddItem("Task 3"),"Task",COMVariant::createFromDate(str2Date("9/23/2006",213)),COMVariant::createFromDate(str2Date("9/26/2006",213)));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(0,196);
}
*/
2064
I am using exCellValueToItemBarProperty, Is it possible to “disable” this synchronisation for one (or several) item (sample-1)

public void init()
{
	COM com_Chart,com_Columns,com_Items;
	anytype var_Chart,var_Columns,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Tasks");
		COM::createFromVariant(com_Columns.Add("Start")).Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
		COM::createFromVariant(com_Columns.Add("End")).Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("9/20/2006",213)));
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(0,196);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AllowCellValueToItemBar(true);
		com_Items.AddBar(com_Items.AddItem("Task 1"),"Task",COMVariant::createFromDate(str2Date("9/21/2006",213)),COMVariant::createFromDate(str2Date("9/24/2006",213)));
		h = com_Items.AddItem("Task 2");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("9/22/2006",213)),COMVariant::createFromDate(str2Date("9/25/2006",213)));
		com_Items.FormatCell(h,COMVariant::createFromInt(1),"``");
		com_Items.FormatCell(h,COMVariant::createFromInt(2),"``");
		com_Items.ItemBold(h,true);
		com_Items.AddBar(com_Items.AddItem("Task 3"),"Task",COMVariant::createFromDate(str2Date("9/23/2006",213)),COMVariant::createFromDate(str2Date("9/26/2006",213)));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(0,196);
}
*/
2063
How can I use the CRD (eXCRD format)

public void init()
{
	COM com_Bar,com_Chart,com_Column,com_Column1,com_Column2,com_Column3,com_Editor,com_Items;
	anytype var_Bar,var_Chart,var_Column,var_Column1,var_Column2,var_Column3,var_Editor,var_Items;
	int h;
	str dih,var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.HeaderAppearance(4/*Etched*/);
	exg2antt1.SelBackMode(1/*exTransparent*/);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Default")); com_Column = var_Column;
		var_s = "[b=0]60;1[b=15]:60,((20;\"<fgcolor=808080>Dateigröße\"[b=1][a=2]:120,2[b=15])/(20;\"<fgcolor=808080>Erstellt am\"[a=2]:120,3[b=15])/";
		var_s = var_s + "(20;\"<fgcolor=808080>Zuletzt bearbeitet\"[b=4][a=2]:120,4[b=15]))";
		com_Column.Def(32/*exCellFormatLevel*/,COMVariant::createFromStr(var_s));
		com_Column.AllowSort(false);
	COM::createFromVariant(exg2antt1.Columns().Add(1)).Visible(false);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add(2)); com_Column1 = var_Column1;
		com_Column1.Visible(false);
		var_Editor = COM::createFromObject(com_Column1.Editor()); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		com_Column1.FormatColumn("1 index `A-Z`");
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add(3)); com_Column2 = var_Column2;
		com_Column2.Visible(false);
		var_Editor = COM::createFromObject(com_Column2.Editor()); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		com_Column2.FormatColumn("1 index ``");
	var_Column3 = COM::createFromVariant(exg2antt1.Columns().Add(4)); com_Column3 = var_Column3;
		com_Column3.Visible(false);
		var_Editor = COM::createFromObject(com_Column3.Editor()); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		com_Column3.FormatColumn("date(``)");
	dih = 48;
	exg2antt1.DefaultItemHeight(dih);
	exg2antt1.DrawGridLines(-2/*exRowLines*/);
	exg2antt1.GridLineStyle(48/*exGridLinesSolid*/);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.DrawGridLines(-2/*exRowLines*/);
		com_Chart.GridLineStyle(48/*exGridLinesSolid*/);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2001",213)));
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Task"); com_Bar = var_Bar;
		com_Bar.OverlaidType(515/*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"One");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/12/2001",213)),"A");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/4/2001",213)),COMVariant::createFromDate(str2Date("1/14/2001",213)),"B");
		com_Items.ItemMaxHeight(h,dih);
		h = com_Items.AddItem("");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Two");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/5/2001",213)),COMVariant::createFromDate(str2Date("1/10/2001",213)),"A");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/4/2001",213)),"B");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/5/2001",213)),COMVariant::createFromDate(str2Date("1/14/2001",213)),"B2");
		com_Items.ItemMaxHeight(h,dih);
		h = com_Items.AddItem("");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Three");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/5/2001",213)),COMVariant::createFromDate(str2Date("1/10/2001",213)),"A");
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2062
Type of wraps the cell's caption support (Sample 2)

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.HeaderSingleLine(false);
	exg2antt1.HeaderHeight(36);
	exg2antt1.DrawGridLines(-2/*exRowLines*/);
	exg2antt1.ColumnAutoResize(false);
	exg2antt1.ScrollBySingleLine(true);
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Single-Line (exCaptionSingleLine)")); com_Column = var_Column;
			com_Column.Width(96);
			com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
			com_Column.Def(16/*exCellSingleLine*/,COMVariant::createFromInt(-1));
		var_Column1 = COM::createFromVariant(com_Columns.Add("Word-Wrap (exCaptionWordWrap)")); com_Column1 = var_Column1;
			com_Column1.Width(96);
			com_Column1.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
			com_Column1.Def(16/*exCellSingleLine*/,COMVariant::createFromInt(0));
			com_Column1.FormatColumn("%0");
		var_Column2 = COM::createFromVariant(com_Columns.Add("Break-Wrap (exCaptionBreakWrap)")); com_Column2 = var_Column2;
			com_Column2.Width(96);
			com_Column2.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
			com_Column2.Def(16/*exCellSingleLine*/,COMVariant::createFromInt(1));
			com_Column2.FormatColumn("%0");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.");
		com_Items.AddItem("This is the <b>first</b> line.\\r\\nThis is the <b>second</b> line.\\r\\nThis is the <b>third</b> line.");
	exg2antt1.EndUpdate();
}
2061
Type of wraps the cell's caption support (Sample 1)

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.HeaderSingleLine(false);
	exg2antt1.HeaderHeight(36);
	exg2antt1.DrawGridLines(-2/*exRowLines*/);
	exg2antt1.ColumnAutoResize(false);
	exg2antt1.ScrollBySingleLine(true);
	COM::createFromVariant(exg2antt1.Columns().Add("Default")).Width(128);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line.");
		h = com_Items.AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		h = com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line.");
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),0/*exCaptionWordWrap*/);
		h = com_Items.AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),0/*exCaptionWordWrap*/);
		h = com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line.");
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),1/*exCaptionBreakWrap*/);
		h = com_Items.AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),1/*exCaptionBreakWrap*/);
	exg2antt1.EndUpdate();
}
2060
Can I break the cell's caption using the line break <br> or \r\n (Sample 2)

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.DrawGridLines(-2/*exRowLines*/);
	exg2antt1.ColumnAutoResize(false);
	exg2antt1.ScrollBySingleLine(true);
	COM::createFromVariant(exg2antt1.Columns().Add("Default")).Width(128);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellSingleLine(com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line."),COMVariant::createFromInt(0),1/*exCaptionBreakWrap*/);
		com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line.");
	exg2antt1.EndUpdate();
}
2059
Can I break the cell's caption using the line break <br> or \r\n (Sample 1)

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.DrawGridLines(-2/*exRowLines*/);
	exg2antt1.ColumnAutoResize(false);
	exg2antt1.ScrollBySingleLine(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Width(128);
		com_Column.Def(16/*exCellSingleLine*/,COMVariant::createFromInt(1));
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line.");
		com_Items.AddItem("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line.");
	exg2antt1.EndUpdate();
}
2058
The histogram is showing empty space, when expanding an item. What could be wrong

public void init()
{
	COM com_Bar,com_Chart,com_Items;
	anytype var_Bar,var_Chart,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.LinesAtRoot(5/*exGroupLinesOutside*/);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,128);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2001",213)));
		com_Chart.HistogramVisible(true);
		com_Chart.HistogramHeight(48);
		com_Chart.HistogramView(1392/*exHistogramNoGrouping | exHistogramLeafItems | exHistogramAllItems*/);
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Task"); com_Bar = var_Bar;
		com_Bar.HistogramPattern(6/*exPatternBDiagonal*/);
	exg2antt1.Columns().Add("Column");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Project 1");
		com_Items.AddBar(com_Items.InsertItem(h,,"Item 1"),"Task",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/4/2001",213)));
		com_Items.AddBar(com_Items.InsertItem(h,,"Item 2"),"Task",COMVariant::createFromDate(str2Date("1/3/2001",213)),COMVariant::createFromDate(str2Date("1/5/2001",213)));
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Project 2");
		com_Items.AddBar(com_Items.InsertItem(h,,"Item 1"),"Task",COMVariant::createFromDate(str2Date("1/7/2001",213)),COMVariant::createFromDate(str2Date("1/10/2001",213)));
		com_Items.AddBar(com_Items.InsertItem(h,,"Item 2"),"Task",COMVariant::createFromDate(str2Date("1/6/2001",213)),COMVariant::createFromDate(str2Date("1/8/2001",213)));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,128);
}
*/
2057
How can I change the visual appearance/color of the Filter For ... field

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exg2antt1.BackColorHeader(WinApi::RGB2int(1,0,0));
	exg2antt1.ForeColorHeader(WinApi::RGB2int(255,255,255));
	exg2antt1.Background(26/*exBackColorFilter*/,exg2antt1.BackColorHeader());
	exg2antt1.Background(27/*exForeColorFilter*/,exg2antt1.ForeColorHeader());
	exg2antt1.Background(0/*exHeaderFilterBarButton*/,WinApi::RGB2int(240,240,240));
	exg2antt1.Background(32/*exCursorHoverColumn*/,-1);
	exg2antt1.HeaderAppearance(5/*Bump*/);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.FilterOnType(true);
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(2/*exNoItems*/);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	exg2antt1.EndUpdate();
}
2056
How can I display the cell's caption without spaces on both sides

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		com_Column.FormatColumn("((trim(value) replace `   ` with ` `) replace `  ` with ` `) replace ` ` with `<bgcolor=FF0000> </bgcolor>`");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.AddItem("Item A");
		com_Items.AddItem("    Item B");
		com_Items.AddItem("        Item   C    ");
	exg2antt1.EndUpdate();
}
2055
How can I highlight the spaces within the column (sample 2)

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		com_Column.FormatColumn("`'` + ( value replace ` ` with `_` ) + `'`");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.AddItem("Item A");
		com_Items.AddItem("    Item B");
		com_Items.AddItem("        Item   C    ");
	exg2antt1.EndUpdate();
}
2054
How can I highlight the spaces within the column (sample 1)

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		com_Column.FormatColumn("len(value) = 0 ? `<bgcolor=FF0000> </bgcolor>` : ( value replace ` ` with `<bgcolor=FF0000> </bgcolor>` )");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.AddItem("Item A");
		com_Items.AddItem("    Item B");
		com_Items.AddItem("        Item   C    ");
	exg2antt1.EndUpdate();
}
2053
How can I change the visual aspect of the drop down filter-calendar

public void init()
{
	COM com_Column;
	anytype var_Column;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.Background(26/*exBackColorFilter*/,WinApi::RGB2int(0,0,1));
	exg2antt1.Background(27/*exForeColorFilter*/,WinApi::RGB2int(255,255,255));
	exg2antt1.Background(12/*exDateScrollRange*/,WinApi::RGB2int(255,255,255));
	exg2antt1.Background(8/*exDateHeader*/,exg2antt1.Background(26/*exBackColorFilter*/));
	exg2antt1.Background(11/*exDateScrollThumb*/,WinApi::RGB2int(128,128,128));
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Date")); com_Column = var_Column;
		com_Column.FilterType(4/*exDate*/);
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterDate(true);
		com_Column.DisplayFilterPattern(false);
	exg2antt1.EndUpdate();
}
2052
How can I scroll the chart to ensure that a bar fits the chart's client area

// ButtonClick event - Occurs when user clicks on the cell's button.
void onEvent_ButtonClick(int   _Item,int   _ColIndex,COMVariant   _Key)
{
	COMVariant dEnd,dScroll,dStart,kBar;
	;
	kBar = exg2antt1.Items().FirstItemBar(_Item);
	dStart = exg2antt1.Items().ItemBar(_Item,kBar,1/*exBarStart*/);
	dEnd = exg2antt1.Items().ItemBar(_Item,kBar,2/*exBarEnd*/);
	dScroll = exg2antt1.FormatABC("(A+B)/2",dStart,dEnd);
	exg2antt1.Chart().ScrollTo(dScroll,COMVariant::createFromInt(1));
}

public void init()
{
	COM com_Chart,com_Column,com_Columns,com_Items;
	COMVariant dEnd,dScroll,dStart,kBar;
	anytype var_Chart,var_Column,var_Columns,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ShowFocusRect(false);
	exg2antt1.DrawGridLines(-1/*exAllLines*/);
	exg2antt1.GridLineStyle(3/*exGridLinesDot4*/);
	exg2antt1.SelBackMode(1/*exTransparent*/);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.OverviewVisible(6402/*exOverviewShowDateTimeScaleBottom | exOverviewAllowVerticalScroll | exOverviewShowAllVisible*/);
		com_Chart.OverviewHeight(26);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("6/8/2011",213)));
		com_Chart.AdjustLevelsToBase(true);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,64);
		com_Chart.UnitWidth(14);
		com_Chart.LevelCount(2);
		com_Chart.DrawGridLines(-1/*exAllLines*/);
		com_Chart.GridLineStyle(3/*exGridLinesDot4*/);
		com_Chart.SelBackColor(exg2antt1.SelBackColor());
		com_Chart.ColumnsFormatLevel("\"\":2,(\"\"/14;1/\"\"):14");
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Default");
		var_Column = COM::createFromVariant(com_Columns.Add("")); com_Column = var_Column;
			com_Column.Def(2/*exCellHasButton*/,COMVariant::createFromBoolean(true));
			com_Column.Def(4/*exCellBackColor*/,COMVariant::createFromInt(15790320));
			com_Column.Visible(false);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(com_Items.AddItem("T1"),"Task",COMVariant::createFromDate(str2Date("6/9/2011",213)),COMVariant::createFromDate(str2Date("6/17/2011",213)));
		com_Items.AddBar(com_Items.AddItem("T2"),"Task",COMVariant::createFromDate(str2Date("1/10/2012",213)),COMVariant::createFromDate(str2Date("1/17/2012",213)));
		com_Items.AddBar(com_Items.AddItem("T3"),"Task",COMVariant::createFromDate(str2Date("2/19/2013",213)),COMVariant::createFromDate(str2Date("2/23/2013",213)));
		com_Items.AddBar(com_Items.AddItem("T4"),"Task",COMVariant::createFromDate(str2Date("12/19/2014",213)),COMVariant::createFromDate(str2Date("12/23/2014",213)));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,64);
}
*/
2051
Is it possible to hide completely the list portion

public void init()
{
	COM com_Chart,com_ConditionalFormat,com_InsideZoomFormat,com_InsideZooms,com_InsideZooms1,com_Items,com_Level,com_Level1;
	anytype var_Chart,var_ConditionalFormat,var_InsideZoomFormat,var_InsideZooms,var_InsideZooms1,var_Items,var_Level,var_Level1;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.HeaderHeight(32);
	exg2antt1.OnResizeControl(129/*exDisableSplitter | exResizeChart*/);
	exg2antt1.DrawGridLines(-1/*exAllLines*/);
	var_ConditionalFormat = COM::createFromObject(exg2antt1.ConditionalFormats()).Add("%CS0 = 1"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.ApplyToBars("Task");
		com_ConditionalFormat.BarColor(WinApi::RGB2int(255,0,0));
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("6/8/2011",213)));
		com_Chart.AdjustLevelsToBase(true);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,0);
		com_Chart.LevelCount(2);
		com_Chart.AllowInsideZoom(true);
		var_Level = com_Chart.Level(0); com_Level = var_Level;
			com_Level.Alignment(1/*CenterAlignment*/);
			com_Level.Label("<b><%d%>-<%mmm%>-<%yyyy%>");
			com_Level.Unit(4096/*exDay*/);
		var_Level1 = com_Chart.Level(1); com_Level1 = var_Level1;
			com_Level1.Label("<%h%>");
			com_Level1.Count(8);
			com_Level1.Unit(65536/*exHour*/);
			var_s = "date(int(dvalue)) case (#06/08/2011# : (int(value) case ( 0 : 'Shift <b>1</b><br>23/20'; 8 : 'Shift <b>2</b><br>38/30' ; 16 : 'S";
			var_s = var_s + "hift <b>3</b><br>24/24' ) ) ; #06/09/2011# : (int(value) case ( 0 : 'Shift <b>1</b><br>15/20'; 8 : 'Shift <b>2</b><br>30/32' ; 1";
			var_s = var_s + "6 : 'Shift <b>3</b><br>26/24' ) ) )";
			com_Level1.FormatLabel(var_s);
		com_Chart.UnitWidth(64);
		com_Chart.NonworkingDays(0);
		com_Chart.ColumnsFormatLevel("0");
		com_Chart.AllowInsideZoom(true);
		var_InsideZoomFormat = COM::createFromObject(com_Chart.DefaultInsideZoomFormat()); com_InsideZoomFormat = var_InsideZoomFormat;
		com_InsideZoomFormat.InsideUnit(1048576/*exMinute*/);
		com_Chart.AllowResizeInsideZoom(false);
		com_Chart.InsideZoomOnDblClick(false);
		var_InsideZooms = com_Chart.InsideZooms(); com_InsideZooms = var_InsideZooms;
			com_InsideZooms.SplitBaseLevel(false);
			com_InsideZooms.DefaultWidth(0);
		var_InsideZooms1 = com_Chart.InsideZooms(); com_InsideZooms1 = var_InsideZooms1;
			com_InsideZooms1.Add(COMVariant::createFromUtcDateTime(str2Datetime("6/9/2011 8:00:00",213)));
			com_InsideZooms1.Add(COMVariant::createFromUtcDateTime(str2Datetime("6/9/2011 16:00:00",213)));
		com_Chart.DrawGridLines(-1/*exAllLines*/);
		com_Chart.GridLineStyle(3/*exGridLinesDot4*/);
	COM::createFromVariant(exg2antt1.Columns().Add("Defaul")).Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(com_Items.AddItem("T1"),"Task",COMVariant::createFromUtcDateTime(str2Datetime("6/8/2011 8:00:00",213)),COMVariant::createFromDate(str2Date("6/10/2011",213)));
		com_Items.AddBar(com_Items.AddItem("T2"),"Task",COMVariant::createFromUtcDateTime(str2Datetime("6/8/2011 16:00:00",213)),COMVariant::createFromUtcDateTime(str2Datetime("6/10/2011 8:00:00",213)));
		com_Items.AddBar(com_Items.AddItem("T3"),"Task",COMVariant::createFromDate(str2Date("6/9/2011",213)),COMVariant::createFromDate(str2Date("6/10/2011",213)));
		com_Items.CellState(com_Items.ItemByIndex(1),COMVariant::createFromInt(0),1);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,0);
}
*/
2050
How can I find out what exBarWorkingCount represents

public void init()
{
	COM com_Bar,com_Chart,com_Column,com_Column1,com_Column2,com_Editor,com_Items,com_Level;
	anytype var_Bar,var_Chart,var_Column,var_Column1,var_Column2,var_Editor,var_Items,var_Level;
	int h;
	str var_s,var_s1;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.Width(42);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Format")); com_Column1 = var_Column1;
		com_Column1.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(258));
		var_s = "trim((1:=int((0:=value)/365) ? =:1 + ` year(s) ` : ``)  + (1:=int((0:=(=:0 - (=:1*365)))/31) ? =:1 + ` month(s) ` : ``) + (1:=in";
		var_s = var_s + "t((0:=(=:0 - (=:1*31)))/7) ? =:1 + ` week(s) ` : ``) + (1:=int((0:=(=:0 - (=:1*7)))/1) ? =:1 + ` day(s) ` : ``) + (1:=int((0:=(=";
		var_s = var_s + ":0 - =:1 + 1/24/60/60/2))*24) ? =:1 + ` hour(s) ` : ``) + (1:=int((0:=(=:0*24 - =:1))*60) ? =:1 + ` min(s) ` : ``) + (1:=int((0:";
		var_s = var_s + "=(=:0*60 - =:1))*60) ? =:1 + ` sec(s)` : ``))";
		com_Column1.FormatColumn(var_s);
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add("Value")); com_Column2 = var_Column2;
		com_Column2.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(258));
		com_Column2.SortType(1/*SortNumeric*/);
		var_Editor = COM::createFromObject(com_Column2.Editor()); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
	exg2antt1.HeaderAppearance(4/*Etched*/);
	exg2antt1.DrawGridLines(-2/*exRowLines*/);
	exg2antt1.GridLineStyle(48/*exGridLinesSolid*/);
	exg2antt1.SelBackColor(WinApi::RGB2int(204,232,255));
	exg2antt1.SelForeColor(WinApi::RGB2int(0,0,0));
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.SelBackColor(exg2antt1.SelBackColor());
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("4/6/2009",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
		com_Chart.LevelCount(2);
		com_Chart.UnitScale(65536/*exHour*/);
		com_Chart.NonworkingHours(15728767);
		com_Chart.ShowNonworkingDates(false);
		com_Chart.ShowNonworkingUnits(false);
		com_Chart.ShowNonworkingHours(false);
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Task"); com_Bar = var_Bar;
			com_Bar.Def(20/*exBarKeepWorkingCount*/,COMVariant::createFromBoolean(true));
		com_Chart.AllowLinkBars(false);
		com_Chart.DrawGridLines(-2/*exRowLines*/);
		com_Chart.GridLineStyle(48/*exGridLinesSolid*/);
		var_Level = COM::createFromObject(com_Chart.Level(0)); com_Level = var_Level;
		com_Level.DrawGridLines(true);
		com_Chart.ResizeUnitScale(1048576/*exMinute*/);
		com_Chart.ResizeUnitCount(15);
		var_s1 = "<|><%nn%><|><%h%>:<%nn%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, '<%yy%> <%h%>:<%nn%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%> <";
		var_s1 = var_s1 + "%h%>:<%nn%> <%AM/PM%><||>15";
		com_Chart.Label(1048576/*exMinute*/,var_s1);
		com_Chart.AllowZoomOnFly(280/*exZoomOnFlyIncludeNeighborItems | exZoomOnFly*/);
		com_Chart.BackColorZoomOnFly(WinApi::RGB2int(255,255,0));
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("");
		com_Items.SelectableItem(h,false);
		com_Items.SortableItem(h,false);
		com_Items.AddBar(com_Items.AddItem("T1"),"Task",COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 10:00:00",213)),COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 13:00:00",213)));
		com_Items.AddBar(com_Items.AddItem("T2"),"Task",COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 10:00:00",213)),COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 16:00:00",213)));
		com_Items.AddBar(com_Items.AddItem("T3"),"Task",COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 10:00:00",213)),COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 19:00:00",213)));
		h = com_Items.AddItem("");
		com_Items.SelectableItem(h,false);
		com_Items.SortableItem(h,false);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2049
How can I hide the filter bar description

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Filter")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterType(240/*exFilter*/);
		com_Column.Filter("B");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("A");
		com_Items.AddItem("B");
		com_Items.AddItem("C");
	exg2antt1.ApplyFilter();
	exg2antt1.FilterBarHeight(0);
	exg2antt1.EndUpdate();
}
2048
How can I add a break bar

public void init()
{
	COM com_Bar,com_Bars,com_Chart,com_Column,com_Column1,com_Items,com_Level;
	anytype var_Bar,var_Bars,var_Chart,var_Column,var_Column1,var_Items,var_Level;
	int h;
	str var_s,var_s1;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.Width(42);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Working")); com_Column1 = var_Column1;
		com_Column1.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(258));
		var_s = "((1:=int(0:= (value))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != 0 ?";
		var_s = var_s + " =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')";
		com_Column1.FormatColumn(var_s);
	exg2antt1.HeaderAppearance(4/*Etched*/);
	exg2antt1.DrawGridLines(-2/*exRowLines*/);
	exg2antt1.GridLineStyle(48/*exGridLinesSolid*/);
	exg2antt1.SelBackColor(WinApi::RGB2int(204,232,255));
	exg2antt1.SelForeColor(WinApi::RGB2int(0,0,0));
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.SelBackColor(exg2antt1.SelBackColor());
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("4/6/2009",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,164);
		com_Chart.LevelCount(2);
		com_Chart.UnitScale(65536/*exHour*/);
		com_Chart.NonworkingHours(15728767);
		com_Chart.ShowNonworkingDates(false);
		com_Chart.ShowNonworkingUnits(false);
		com_Chart.ShowNonworkingHours(false);
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar = COM::createFromObject(com_Bars).Add("Task:Split"); com_Bar = var_Bar;
			com_Bar.Def(20/*exBarKeepWorkingCount*/,COMVariant::createFromBoolean(true));
			com_Bar.Shortcut("Task");
		com_Chart.AllowLinkBars(false);
		com_Chart.DrawGridLines(-2/*exRowLines*/);
		com_Chart.GridLineStyle(48/*exGridLinesSolid*/);
		var_Level = COM::createFromObject(com_Chart.Level(0)); com_Level = var_Level;
		com_Level.DrawGridLines(true);
		com_Chart.ResizeUnitScale(1048576/*exMinute*/);
		com_Chart.ResizeUnitCount(15);
		var_s1 = "<|><%nn%><|><%h%>:<%nn%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, '<%yy%> <%h%>:<%nn%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%> <";
		var_s1 = var_s1 + "%h%>:<%nn%> <%AM/PM%><||>15";
		com_Chart.Label(1048576/*exMinute*/,var_s1);
		com_Chart.AllowZoomOnFly(280/*exZoomOnFlyIncludeNeighborItems | exZoomOnFly*/);
		com_Chart.BackColorZoomOnFly(WinApi::RGB2int(255,255,0));
		com_Chart.AllowNonworkingBars(true);
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		h = com_Items.AddItem("T1");
		com_Items.ItemNonworkingUnits(h,COMVariant::createFromBoolean(false),"(weekday(value) in (0,6)) or (timeF(value) < `07:00:00`) or (timeF(value) >= `20:00:00`) ");
		com_Items.AddBar(h,"",COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 7:30:00",213)),COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 9:30:00",213)),"A","<c><font ;4>break<br>bar");
		com_Items.ItemBar(h,"A",38/*exBarTreatAsNonworking*/,COMVariant::createFromBoolean(true));
		com_Items.AddBar(h,"Task",COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 10:00:00",213)),COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 12:00:00",213)));
		com_Items.AddBar(com_Items.AddItem("T2"),"Task",COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 10:00:00",213)),COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 17:45:00",213)));
		com_Items.AddItem("");
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,164);
}
*/
2047
It seems the ResizeUnitCount have no effect on the ZoomOnFly feature, is it normal

public void init()
{
	COM com_Bar,com_Chart,com_Column,com_Column1,com_Items,com_Level;
	anytype var_Bar,var_Chart,var_Column,var_Column1,var_Items,var_Level;
	str var_s,var_s1;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.Width(42);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Working")); com_Column1 = var_Column1;
		com_Column1.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(258));
		var_s = "((1:=int(0:= (value))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != 0 ?";
		var_s = var_s + " =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')";
		com_Column1.FormatColumn(var_s);
	exg2antt1.HeaderAppearance(4/*Etched*/);
	exg2antt1.DrawGridLines(-2/*exRowLines*/);
	exg2antt1.GridLineStyle(48/*exGridLinesSolid*/);
	exg2antt1.SelBackColor(WinApi::RGB2int(204,232,255));
	exg2antt1.SelForeColor(WinApi::RGB2int(0,0,0));
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.SelBackColor(exg2antt1.SelBackColor());
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("4/6/2009",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,164);
		com_Chart.LevelCount(2);
		com_Chart.UnitScale(65536/*exHour*/);
		com_Chart.NonworkingHours(15728767);
		com_Chart.ShowNonworkingDates(false);
		com_Chart.ShowNonworkingUnits(false);
		com_Chart.ShowNonworkingHours(false);
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Task"); com_Bar = var_Bar;
			com_Bar.Def(20/*exBarKeepWorkingCount*/,COMVariant::createFromBoolean(true));
		com_Chart.AllowLinkBars(false);
		com_Chart.DrawGridLines(-2/*exRowLines*/);
		com_Chart.GridLineStyle(48/*exGridLinesSolid*/);
		var_Level = COM::createFromObject(com_Chart.Level(0)); com_Level = var_Level;
		com_Level.DrawGridLines(true);
		com_Chart.ResizeUnitScale(1048576/*exMinute*/);
		com_Chart.ResizeUnitCount(15);
		var_s1 = "<|><%nn%><|><%h%>:<%nn%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, '<%yy%> <%h%>:<%nn%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%> <";
		var_s1 = var_s1 + "%h%>:<%nn%> <%AM/PM%><||>15";
		com_Chart.Label(1048576/*exMinute*/,var_s1);
		com_Chart.AllowZoomOnFly(280/*exZoomOnFlyIncludeNeighborItems | exZoomOnFly*/);
		com_Chart.BackColorZoomOnFly(WinApi::RGB2int(255,255,0));
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.AddBar(com_Items.AddItem("T1"),"Task",COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 10:00:00",213)),COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 12:00:00",213)));
		com_Items.AddBar(com_Items.AddItem("T2"),"Task",COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 10:00:00",213)),COMVariant::createFromUtcDateTime(str2Datetime("4/6/2009 17:45:00",213)));
		com_Items.AddItem("");
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,164);
}
*/
2046
Export Data in HTML format

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.ItemBold(_Item,true);
		com_Items.AddBar(_Item,"Summary",com_Items.CellValue(_Item,COMVariant::createFromInt(2)),com_Items.CellValue(_Item,COMVariant::createFromInt(4)));
		com_Items.DefineSummaryBars(_Item,"",-3,"");
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	int i;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		i = com_Items.ItemToIndex(_Item);
		com_Items.AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("1/2/2008",213)),COMVariant::createFromDate(str2Date("1/9/2008",213)),"");
		com_Items.ItemBar(_Item,"",514/*exBarMove*/,i);
		com_Items.ItemBar(_Item,"",513/*exBarDuration*/,i);
}

public void init()
{
	COM com_Appearance,com_Bar,com_Bar1,com_Chart,com_Column,com_Column1,com_Column2,com_Columns,com_ConditionalFormat,com_ConditionalFormat1,com_Items,com_ShellBrowserWindow;
	anytype var_Appearance,var_Bar,var_Bar1,var_Chart,var_Column,var_Column1,var_Column2,var_Columns,var_ConditionalFormat,var_ConditionalFormat1,var_Items,var_ShellBrowserWindow;
	int i;
	str sFile,var_s,var_s1;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.BackColorAlternate(WinApi::RGB2int(240,240,240));
	exg2antt1.DrawGridLines(-1/*exAllLines*/);
	exg2antt1.HeaderAppearance(4/*Etched*/);
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	var_s = "(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `";
	var_s = var_s + "[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match";
	var_s = var_s + "itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun";
	var_s = var_s + "t + ` item(s)`) )))";
	exg2antt1.FilterBarCaption(var_s);
	exg2antt1.FilterBarPromptVisible(2579/*exFilterBarCompact | exFilterBarShowCloseIfRequired | exFilterBarSingleLine | exFilterBarVisible | exFilterBarPromptVisible*/);
	exg2antt1.FilterBarPromptType(2/*exFilterPromptContainsAny*/);
	exg2antt1.SingleSort(false);
	exg2antt1.AllowGroupBy(true);
	exg2antt1.BackColorSortBar(exg2antt1.BackColor());
	exg2antt1.DrawGridLines(-1/*exAllLines*/);
	var_Appearance = exg2antt1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s1 = "gBFLBCJwBAEHhEJAAEhABOUGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADCMQwAFBIbhrE4ZBjHGQRUgyI43RhHUBzVI";
		var_s1 = var_s1 + "UBxDEaTZLlEYJBgeHYhDJPcaUVDcWQHGyeZwjSgpKoWSJIU5NcggPDgEwTKCmKlTAKoSzJMyEmwWRAdVTZLSEaxierKPhyWT/XgAF4PfDFKRXFqXY5mKZJFqKOI8TxIN";
		var_s1 = var_s1 + "gxPQMGyrBqraLqKwQGrGCQKSBhUZ3dS2JR3OSlYRuQAMVgOXoDZhPWZXbDtSzPE63NgtOR5DiGWalABoeoxRa9cz3ViCJSrGTqIoINIzZLHFQbPpdAYdP6BeIjXhhZxB";
		var_s1 = var_s1 + "BuLZXmEOh9CcNoni2N4MjWVodh+DpfBeLJinsWR9AyYwVAkGBhEAFphGiRogDEGBamkFgtjcZgHiMbgehYaQhAIEIREAaQYkcQZUHIGRUGQDBOEaBAhDYDxGkMZAkCge";
		var_s1 = var_s1 + "oagYZAYEYAYIAWGhemICIFj8WIiCiFR5gkIhogmBoKGKJx2C6C5hniMgggqYwog0UoNGMZJiDiCZRgOLY0ECUAQICA==";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s1));
		com_Appearance.RenderType(-268435456);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.DrawGridLines(-1/*exAllLines*/);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,196);
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2008",213)));
		com_Chart.FirstWeekDay(1/*exMonday*/);
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Summary"); com_Bar = var_Bar;
			com_Bar.StartShape(0/*exShapeIconEmpty*/);
			com_Bar.EndShape(0/*exShapeIconEmpty*/);
			com_Bar.Shape(1/*exShapeSolid*/);
			com_Bar.Color(0x1808080);
			com_Bar.Height(7);
			com_Bar.Def(3/*exBarCaption*/,"<%=%513%>");
			com_Bar.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
		var_Bar1 = COM::createFromObject(com_Chart.Bars()).Item("Task"); com_Bar1 = var_Bar1;
			com_Bar1.Def(3/*exBarCaption*/,"<%=(%2-%1) in (3,5) ? %513 : `` %>");
			com_Bar1.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
	var_ConditionalFormat = COM::createFromObject(exg2antt1.ConditionalFormats()).Add("(%2 - %1) = 3","K3"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,0,0));
		com_ConditionalFormat.BarColor(com_ConditionalFormat.ForeColor());
		com_ConditionalFormat.ApplyToBars("Task");
	var_ConditionalFormat1 = COM::createFromObject(exg2antt1.ConditionalFormats()).Add("(%2 - %1) = 5","K5"); com_ConditionalFormat1 = var_ConditionalFormat1;
		com_ConditionalFormat1.ForeColor(WinApi::RGB2int(0,255,0));
		com_ConditionalFormat1.BarColor(com_ConditionalFormat1.ForeColor());
		com_ConditionalFormat1.ApplyToBars("Task");
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Tasks")).Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		var_Column = COM::createFromVariant(com_Columns.Add("Start")); com_Column = var_Column;
			com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
			com_Column.Def(19/*exCellValueToItemBarKey*/,"");
		var_Column1 = COM::createFromVariant(com_Columns.Add("End")); com_Column1 = var_Column1;
			com_Column1.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
			com_Column1.Def(19/*exCellValueToItemBarKey*/,"");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AllowCellValueToItemBar(true);
		com_Items.AddItem("Task A");
		com_Items.AddItem("Task A");
		com_Items.AddItem("Task A");
		com_Items.AddItem("Task A");
		com_Items.AddItem("Task B");
		com_Items.AddItem("Task B");
		com_Items.AddItem("Task B");
		com_Items.AddItem("Task C");
	var_Column2 = COM::createFromObject(exg2antt1.Columns()).Item("Tasks"); com_Column2 = var_Column2;
	com_Column2.SortOrder(1/*SortAscending*/);
	exg2antt1.EndUpdate();
	sFile = "c:/temp/export.html";
	exg2antt1.Export(sFile,"vis");
	// Add 'Microsoft Internet Controls(ieframe.dll)' reference to your project.
	var_ShellBrowserWindow = COM::createFromObject(new SHDocVw.ShellBrowserWindow()); com_ShellBrowserWindow = var_ShellBrowserWindow;
		com_ShellBrowserWindow.Navigate2(sFile);
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,196);
}
*/
2045
Export Data in CSV format

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	int i;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		i = com_Items.ItemToIndex(_Item);
		com_Items.AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("1/2/2008",213)),COMVariant::createFromDate(str2Date("1/9/2008",213)),"");
		com_Items.ItemBar(_Item,"",514/*exBarMove*/,i);
		com_Items.ItemBar(_Item,"",513/*exBarDuration*/,i);
}

public void init()
{
	COM com_Bar,com_Chart,com_Column,com_Column1,com_Columns,com_ConditionalFormat,com_ConditionalFormat1,com_Items;
	anytype var_Bar,var_Chart,var_Column,var_Column1,var_Columns,var_ConditionalFormat,var_ConditionalFormat1,var_Items;
	int i;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.BackColorAlternate(WinApi::RGB2int(240,240,240));
	exg2antt1.DrawGridLines(-1/*exAllLines*/);
	exg2antt1.HeaderAppearance(4/*Etched*/);
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	var_s = "(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `";
	var_s = var_s + "[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match";
	var_s = var_s + "itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun";
	var_s = var_s + "t + ` item(s)`) )))";
	exg2antt1.FilterBarCaption(var_s);
	exg2antt1.FilterBarPromptVisible(2579/*exFilterBarCompact | exFilterBarShowCloseIfRequired | exFilterBarSingleLine | exFilterBarVisible | exFilterBarPromptVisible*/);
	exg2antt1.FilterBarPromptType(2/*exFilterPromptContainsAny*/);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,196);
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2008",213)));
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Task"); com_Bar = var_Bar;
			com_Bar.Def(3/*exBarCaption*/,"<%=(%2-%1) in (3,5) ? %513 : `` %>");
			com_Bar.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
	var_ConditionalFormat = COM::createFromObject(exg2antt1.ConditionalFormats()).Add("(%2 - %1) = 3","K3"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,0,0));
		com_ConditionalFormat.BarColor(com_ConditionalFormat.ForeColor());
		com_ConditionalFormat.ApplyToBars("Task");
	var_ConditionalFormat1 = COM::createFromObject(exg2antt1.ConditionalFormats()).Add("(%2 - %1) = 5","K5"); com_ConditionalFormat1 = var_ConditionalFormat1;
		com_ConditionalFormat1.ForeColor(WinApi::RGB2int(0,255,0));
		com_ConditionalFormat1.BarColor(com_ConditionalFormat1.ForeColor());
		com_ConditionalFormat1.ApplyToBars("Task");
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Tasks")).Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		var_Column = COM::createFromVariant(com_Columns.Add("Start")); com_Column = var_Column;
			com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(1));
			com_Column.Def(19/*exCellValueToItemBarKey*/,"");
		var_Column1 = COM::createFromVariant(com_Columns.Add("End")); com_Column1 = var_Column1;
			com_Column1.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(2));
			com_Column1.Def(19/*exCellValueToItemBarKey*/,"");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AllowCellValueToItemBar(true);
		com_Items.AddItem("Task A");
		com_Items.AddItem("Task A");
		com_Items.AddItem("Task A");
		com_Items.AddItem("Task A");
		com_Items.AddItem("Task B");
		com_Items.AddItem("Task B");
		com_Items.AddItem("Task B");
		com_Items.AddItem("Task C");
	exg2antt1.EndUpdate();
	print( exg2antt1.Export("","vis") );
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,196);
}
*/
2044
I want to be able to detect when a user clicks on a row in the chart that is not populated

// MouseMove event - Occurs when the user moves the mouse.
void onEvent_MouseMove(int   _Button,int   _Shift,int   _X,int   _Y)
{
	COMVariant sMessage;
	Date date;
	int item;
	;
	item = exg2antt1.ItemFromPoint(-1,-1,col,hit);
	date = exg2antt1.Chart().DateFromPoint(-1,-1);
	sMessage = exg2antt1.FormatABC("(not(A = 0) ? `chart` : `list`) + ` ` + (not(B = 0) ? `item` : `empty`)  ",date,item);
	print( sMessage );
}

public void init()
{
	COM com_Chart,com_Items;
	COMVariant sMessage;
	Date date;
	anytype var_Chart,var_Items;
	int item;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,128);
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2018",213)));
	exg2antt1.Columns().Add("Tasks");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(com_Items.AddItem("Task 1"),"Task",COMVariant::createFromDate(str2Date("1/2/2018",213)),COMVariant::createFromDate(str2Date("1/12/2018",213)));
		com_Items.AddBar(com_Items.AddItem("Task 2"),"Task",COMVariant::createFromDate(str2Date("1/3/2018",213)),COMVariant::createFromDate(str2Date("1/13/2018",213)));
		com_Items.AddBar(com_Items.AddItem("Task 3"),"Task",COMVariant::createFromDate(str2Date("1/4/2018",213)),COMVariant::createFromDate(str2Date("1/14/2018",213)));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,128);
}
*/
2043
Is it possible to have multiple calendars. A calendar for each row for example. Reason : some of our lines work 2 shifts but some also have a night shift

public void init()
{
	COM com_Bar,com_Bars,com_Chart,com_Column,com_Items,com_Level;
	anytype var_Bar,var_Bars,var_Chart,var_Column,var_Items,var_Level;
	int h;
	str sCalendar1,sCalendar2,sCalendar3,sCalendar4,var_s,var_s1;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.Columns().Add("Tasks");
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Working")); com_Column = var_Column;
		com_Column.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(258));
		var_s = "((1:=int(0:=( 24*int(value) + (value - int(value) + 1/24/60/60/2)*24))) != 0 ? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1";
		var_s = var_s + ":=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')";
		com_Column.FormatColumn(var_s);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("4/6/2009",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,148);
		com_Chart.LevelCount(2);
		com_Chart.ShowNonworkingUnits(false);
		com_Chart.ShowNonworkingDates(false);
		var_Bars = com_Chart.Bars(); com_Bars = var_Bars;
			var_Bar = COM::createFromObject(com_Bars.Add("Task:Split")); com_Bar = var_Bar;
			com_Bar.Shortcut("Task");
			var_Bar = COM::createFromObject(com_Bars.Item("Task")); com_Bar = var_Bar;
			com_Bar.Def(20/*exBarKeepWorkingCount*/,COMVariant::createFromBoolean(true));
		com_Chart.Label(65536/*exHour*/,"<%h%><||><||>65536");
		var_Level = COM::createFromObject(com_Chart.Level(0)); com_Level = var_Level;
		com_Level.FormatLabel("`<font small fonts;6>` + value");
		var_Level = COM::createFromObject(com_Chart.Level(1)); com_Level = var_Level;
		var_s1 = "len(value) = 2 ? (`<font small fonts;4>` + (value left 1) + `<br>` + (value right 1) ) : (`<font small fonts;4>` + ` <br>` + (va";
		var_s1 = var_s1 + "lue left 1) + `` )";
		com_Level.FormatLabel(var_s1);
		com_Chart.UnitScale(65536/*exHour*/);
		com_Chart.UnitWidth(9);
	exg2antt1.Items().AllowCellValueToItemBar(true);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		sCalendar1 = "weekday(value) in (0,6) or (hour(value) < 6) or (hour(value) > 18)";
		h = com_Items.AddItem("Shift 1");
		com_Items.ItemNonworkingUnits(h,COMVariant::createFromBoolean(false),sCalendar1);
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("4/6/2009",213)),COMVariant::createFromDate(str2Date("4/7/2009",213)));
		h = com_Items.AddItem("Shift 1");
		com_Items.ItemNonworkingUnits(h,COMVariant::createFromBoolean(false),sCalendar1);
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("4/6/2009",213)),COMVariant::createFromDate(str2Date("4/8/2009",213)));
		sCalendar2 = "weekday(value) in (0,6) or (hour(value) < 8) or (hour(value) > 14)";
		h = com_Items.AddItem("Shift 2");
		com_Items.ItemNonworkingUnits(h,COMVariant::createFromBoolean(false),sCalendar2);
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("4/6/2009",213)),COMVariant::createFromDate(str2Date("4/7/2009",213)));
		h = com_Items.AddItem("Shift 2");
		com_Items.ItemNonworkingUnits(h,COMVariant::createFromBoolean(false),sCalendar2);
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("4/6/2009",213)),COMVariant::createFromDate(str2Date("4/8/2009",213)));
		sCalendar3 = "weekday(value) in (0,6) or 0 = ( hour(value) mod 3 ) ";
		h = com_Items.AddItem("Shift 3");
		com_Items.ItemNonworkingUnits(h,COMVariant::createFromBoolean(false),sCalendar3);
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("4/6/2009",213)),COMVariant::createFromDate(str2Date("4/7/2009",213)));
		h = com_Items.AddItem("Shift 3");
		com_Items.ItemNonworkingUnits(h,COMVariant::createFromBoolean(false),sCalendar3);
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("4/6/2009",213)),COMVariant::createFromDate(str2Date("4/8/2009",213)));
		sCalendar4 = "weekday(value) in (0,6)";
		h = com_Items.AddItem("Shift 3");
		com_Items.ItemNonworkingUnits(h,COMVariant::createFromBoolean(false),sCalendar4);
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("4/6/2009",213)),COMVariant::createFromDate(str2Date("4/7/2009",213)));
		h = com_Items.AddItem("Shift 3");
		com_Items.ItemNonworkingUnits(h,COMVariant::createFromBoolean(false),sCalendar4);
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("4/6/2009",213)),COMVariant::createFromDate(str2Date("4/8/2009",213)));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,148);
}
*/
2042
Is it possible to check multiple-items at once

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	COMVariant bHasParent;
	anytype var_Items;
	;
	bHasParent = exg2antt1.FormatABC("value != 0",exg2antt1.Items().ItemParent(_Item));
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellHasCheckBox(_Item,COMVariant::createFromInt(0),bHasParent);
}

public void init()
{
	COM com_Column,com_Items;
	COMVariant bHasParent;
	anytype var_Column,var_Items;
	int h,hChild;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Tasks")); com_Column = var_Column;
		com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
		com_Column.FormatColumn("value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)");
	exg2antt1.HeaderVisible(1/*exHeaderVisibleExtendLevels*/);
	exg2antt1.SingleSel(false);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Project");
		hChild = com_Items.InsertItem(h,,"Task 1");
		hChild = com_Items.InsertItem(h,,"Task 2");
		hChild = com_Items.InsertItem(h,,"Task 3");
		com_Items.ExpandItem(h,true);
		com_Items.LockedItemCount(0/*exTop*/,1);
		com_Items.CellValue(com_Items.LockedItem(0/*exTop*/,0),COMVariant::createFromInt(0),"<c>Select multiple items and press the <b>SPACE</b> key");
	exg2antt1.EndUpdate();
}
2041
How can I prevent changing the start/end colors of the bar, when ItemBar(exBarColor) property is applied

public void init()
{
	COM com_Bar,com_Bar1,com_Bars,com_Items;
	anytype var_Bar,var_Bar1,var_Bars,var_Items;
	int h;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exg2antt1.Images(COMVariant::createFromStr(var_s));
	exg2antt1.VisualAppearance().Add(1,"E:\\Exontrol\\ExButton\\sample\\EBN\\Assorted\\bhframe.ebn");
	/*should be called during the form's activate method*/ exg2antt1.Chart().PaneWidth(false,96);
	var_Bars = exg2antt1.Chart().Bars(); com_Bars = var_Bars;
		com_Bars.AddShapeCorner(COMVariant::createFromInt(12345),COMVariant::createFromInt(1));
		com_Bars.AddShapeCorner(COMVariant::createFromInt(999),COMVariant::createFromInt(2));
		com_Bars.AddShapeCorner(COMVariant::createFromInt(1049),COMVariant::createFromInt(3));
		var_Bar = com_Bars.Add("T1"); com_Bar = var_Bar;
			com_Bar.StartShape(12345/*0x3039 | exShapeIconVBar | exShapeIconRight*/);
			com_Bar.EndShape(999/*0x3e7 | exShapeIconLeft*/);
			com_Bar.Pattern(4/*exPatternNDot*/);
			com_Bar.StartColor(WinApi::RGB2int(0,255,0));
			com_Bar.Color(0x1000000);
			com_Bar.EndColor(WinApi::RGB2int(255,0,0));
			com_Bar.Def(3/*exBarCaption*/,"<%=`<font ;6>  ` + %0 + ``%>");
			com_Bar.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
		var_Bar1 = com_Bars.Add("T2"); com_Bar1 = var_Bar1;
			com_Bar1.StartShape(12345/*0x3039 | exShapeIconVBar | exShapeIconRight*/);
			com_Bar1.EndShape(1049/*0x419 | exShapeIconVBar | exShapeIconRight*/);
			com_Bar1.Pattern(4/*exPatternNDot*/);
			com_Bar1.StartColor(-1);
			com_Bar1.Color(0x1000000);
			com_Bar1.EndColor(-1);
			com_Bar1.Def(3/*exBarCaption*/,"<%=`<font ;6>  ` + %0 + ``%>");
			com_Bar1.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
	exg2antt1.Chart().FirstVisibleDate(COMVariant::createFromDate(str2Date("1/1/2001",213)));
	exg2antt1.Columns().Add("Column");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item 1");
		com_Items.AddBar(h,"T1",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/4/2001",213)));
		h = com_Items.AddItem("Item 2");
		com_Items.AddBar(h,"T1",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/4/2001",213)));
		com_Items.ItemBar(h,"",33/*exBarColor*/,COMVariant::createFromInt(65280));
		h = com_Items.AddItem("Item 3");
		com_Items.AddBar(h,"T1",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/4/2001",213)));
		com_Items.ItemBar(h,"",33/*exBarColor*/,COMVariant::createFromInt(255));
		h = com_Items.AddItem("Item 4");
		com_Items.AddBar(h,"T2",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/4/2001",213)));
		h = com_Items.AddItem("Item 5");
		com_Items.AddBar(h,"T2",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/4/2001",213)));
		com_Items.ItemBar(h,"",33/*exBarColor*/,COMVariant::createFromInt(65280));
		h = com_Items.AddItem("Item 6");
		com_Items.AddBar(h,"T2",COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/4/2001",213)));
		com_Items.ItemBar(h,"",33/*exBarColor*/,COMVariant::createFromInt(255));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,96);
}
*/
2040
How can I get the icon from the cell when using the Items.CellImages property (icon index)

// MouseMove event - Occurs when the user moves the mouse.
void onEvent_MouseMove(int   _Button,int   _Shift,int   _X,int   _Y)
{
	int i;
	;
	i = exg2antt1.ItemFromPoint(-1,-1,c,hit);
	print( exg2antt1.FormatABC("( 0x44 = ( value bitand 0x44 ) ) ? ( ( (value bitand 0xFFFF0000) bitshift 16 ) array B split `,` )  : `no image`",hit,exg2antt1.Items().CellImages(i,c)) );
}

public void init()
{
	COM com_Items;
	anytype var_Items;
	int i;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exg2antt1.Images(COMVariant::createFromStr(var_s));
	/*should be called during the form's activate method*/ exg2antt1.Chart().PaneWidth(true,0);
	exg2antt1.Columns().Add("Default");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellImages(com_Items.AddItem("Item 1"),COMVariant::createFromInt(0),"3,2,1");
		com_Items.CellImages(com_Items.AddItem("Item 2"),COMVariant::createFromInt(0),"2,3");
		com_Items.CellImages(com_Items.AddItem("Item 3"),COMVariant::createFromInt(0),"2,");
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(true,0);
}
*/
2039
How can I get the icon from the cell when using the Items.CellImages property (icon position within the cell)

// MouseMove event - Occurs when the user moves the mouse.
void onEvent_MouseMove(int   _Button,int   _Shift,int   _X,int   _Y)
{
	int i;
	;
	i = exg2antt1.ItemFromPoint(-1,-1,c,hit);
	print( exg2antt1.FormatABC("( 0x44 = ( value bitand 0x44 ) ) ? 1 + ( (value bitand 0xFFFF0000) bitshift 16 ) : `no image`",hit) );
}

public void init()
{
	COM com_Items;
	anytype var_Items;
	int i;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exg2antt1.Images(COMVariant::createFromStr(var_s));
	/*should be called during the form's activate method*/ exg2antt1.Chart().PaneWidth(true,0);
	exg2antt1.Columns().Add("Default");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellImages(com_Items.AddItem("Item 1"),COMVariant::createFromInt(0),"3,2,1");
		com_Items.CellImages(com_Items.AddItem("Item 2"),COMVariant::createFromInt(0),"2,3");
		com_Items.CellImages(com_Items.AddItem("Item 3"),COMVariant::createFromInt(0),"2");
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(true,0);
}
*/
2038
I have an EBN bar. Now if I apply an additional color to the bar, e,g, yellow, the bar is displayed as "dark yellow", which I assume is due to the black EBN color. How can I get the more "bright yellow" color

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	int l;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.ItemDividerLine(_Item,0/*EmptyLine*/);
		com_Items.AddBar(_Item,"Summary",COMVariant::createFromDate(str2Date("12/2/2017",213)),COMVariant::createFromDate(str2Date("12/2/2017",213)));
		com_Items.DefineSummaryBars(_Item,"",-3,"");
		l = com_Items.GroupItem(_Item);
		com_Items.CellSingleLine(_Item,l,false);
		com_Items.CellBold(_Item,l,true);
		com_Items.ItemBackColor(_Item,WinApi::RGB2int(190,190,190));
	exg2antt1.Chart().ItemBackColor(_Item,WinApi::RGB2int(190,190,190));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/10/2017",213)));
}

public void init()
{
	COM com_Appearance,com_Bar,com_Chart,com_Column,com_Column1,com_Columns,com_Items;
	anytype var_Appearance,var_Bar,var_Chart,var_Column,var_Column1,var_Columns,var_Items;
	int h;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Appearance = exg2antt1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABOUGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADCMQwAFBIbhrE4ZBjHGQRUgyI43RhHUBzVI";
		var_s = var_s + "UBxDEaTZLlEYJBgeHYhDJPcaUVDcWQHGyeZwjSgpKoWSJIU5NcggPDgEwTKCmKlTAKoSzJMyEmwWRAdVTZLSEaxierKPhyWT/XgAF4PfDFKRXFqXY5mKZJFqKOI8TxIN";
		var_s = var_s + "gxPQMGyrBqraLqKwQGrGCQKSBhUZ3dS2JR3OSlYRuQAMVgOXoDZhPWZXbDtSzPE63NgtOR5DiGWalABoeoxRa9cz3ViCJSrGTqIoINIzZLHFQbPpdAYdP6BeIjXhhZxB";
		var_s = var_s + "BuLZXmEOh9CcNoni2N4MjWVodh+DpfBeLJinsWR9AyYwVAkGBhEAFphGiRogDEGBamkFgtjcZgHiMbgehYaQhAIEIREAaQYkcQZUHIGRUGQDBOEaBAhDYDxGkMZAkCge";
		var_s = var_s + "oagYZAYEYAYIAWGhemICIFj8WIiCiFR5gkIhogmBoKGKJx2C6C5hniMgggqYwog0UoNGMZJiDiCZRgOLY0ECUAQICA==";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
		com_Appearance.RenderType(-268435456);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,342);
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Summary"); com_Bar = var_Bar;
			com_Bar.StartShape(0/*exShapeIconEmpty*/);
			com_Bar.EndShape(0/*exShapeIconEmpty*/);
			com_Bar.Shape(1/*exShapeSolid*/);
			com_Bar.Color(0x1ff0000);
			com_Bar.Def(3/*exBarCaption*/,"<%=%513%>");
			com_Bar.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		com_Columns.Add("C2");
		com_Columns.Add("C3");
		var_Column = COM::createFromVariant(com_Columns.Add("Pos")); com_Column = var_Column;
			com_Column.FormatColumn("1 pos ``");
			com_Column.AllowGroupBy(false);
			com_Column.Position(0);
			com_Column.Width(48);
			com_Column.AllowSizing(false);
	exg2antt1.SortBarVisible(true);
	exg2antt1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exg2antt1.AllowGroupBy(true);
	exg2antt1.HasLines(0/*exNoLine*/);
	exg2antt1.LinesAtRoot(0/*exNoLinesAtRoot*/);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
	var_Column1 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.SortOrder(1/*SortAscending*/);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,342);
}
*/
2037
Is it possible to change the visual appearance of the position signs when user changes the column's position by drag and drop

public void init()
{
	COM com_Appearance,com_Columns;
	anytype var_Appearance,var_Columns;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.HeaderAppearance(4/*Etched*/);
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column 1");
		com_Columns.Add("Column 2");
		com_Columns.Add("Column 3");
	var_Appearance = exg2antt1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMYxXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADKMA4SOKIZhrE4bBhGaQRUgyI43RhHUBzVI";
		var_s = var_s + "UcQvE6TZRHCQYHgkNIhDJIM7TPLkeSVJaTIRoKhJUogApQThTMgVRDEThkGoSa6soSoYTDBKybLrSLKagOT5YUDKUqSdKEZRpEq1YztWbaQoCUoqVRRVIWfbNd4JJa4a";
		var_s = var_s + "DhWpYdpeeY5R7bWLgBYVVABL7LLRsSxpHxPF6RXxaeI3GKsaS8G6ic6nPQMHj7I4NS5pUa6Rh2VYNSa8AAtETRYznOw4bTMXAjNIea5bAYIIR5HIoDzVbQcCQAHL9DBe";
		var_s = var_s + "EMIQEEISgGhMGZQmocgymoYRRCIEQ0G2HYBnEIBig4V4zCQGINnmagCECY43medZ6H2Pw/g+X5fnueh/h+R5+AKABfkMWgGgGYA4AICoCGCE5WA4CphACMgSD2IRIDIB";
		var_s = var_s + "ICmEd5YGCBpRjGBgegWIYIgWdgoGIRQsiKCZiAiJZ0gGQI4jUS4LECOAiBmDJflGfg2BSY4Al4OhGkOCJ2DgFJjGGfgqgiH5Ch4RhGkqOQmEOEpkFkHQYhJRYyESAokG";
		var_s = var_s + "KHhIhKIxJEmf4VGUeRGFmF5iBkchPhYJQ5GoYIZg6Ug6GoFYmkmNhuhulRGHKGoImefh0BUZ4JmYeoemeSZ2H6HQmgoBgXDqXwUAQgI=";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
		com_Appearance.Add(2,"CP:1 0 -36 0 0");
	exg2antt1.Background(182/*exColumnsPositionSign*/,0x2000000);
	exg2antt1.EndUpdate();
}
2036
Overlaid-Types

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	COMVariant barName;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		barName = com_Items.ItemData(_Item);
		com_Items.AddBar(_Item,barName,COMVariant::createFromDate(str2Date("1/2/2001",213)),COMVariant::createFromDate(str2Date("1/4/2001",213)),"A1");
		com_Items.AddBar(_Item,barName,COMVariant::createFromDate(str2Date("1/3/2001",213)),COMVariant::createFromDate(str2Date("1/5/2001",213)),"A2");
		com_Items.AddBar(_Item,barName,COMVariant::createFromDate(str2Date("1/4/2001",213)),COMVariant::createFromDate(str2Date("1/7/2001",213)),"A3");
		com_Items.AddBar(_Item,barName,COMVariant::createFromDate(str2Date("1/5/2001",213)),COMVariant::createFromDate(str2Date("1/8/2001",213)),"A4");
}

public void init()
{
	COM com_Bar,com_Bar1,com_Bar2,com_Bar3,com_Bar4,com_Bar5,com_Bars,com_Chart,com_Items;
	COMVariant barName;
	anytype var_Bar,var_Bar1,var_Bar2,var_Bar3,var_Bar4,var_Bar5,var_Bars,var_Chart,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.DefaultItemHeight(22);
	exg2antt1.Columns().Add("Task");
	exg2antt1.ScrollBySingleLine(true);
	exg2antt1.BackColorAlternate(WinApi::RGB2int(240,240,240));
	exg2antt1.DrawGridLines(1/*exHLines*/);
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.DrawGridLines(1/*exHLines*/);
		com_Chart.ShowNonworkingDates(false);
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,164);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/28/2000",213)));
		com_Chart.LevelCount(2);
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar = COM::createFromObject(com_Bars).Copy("Task","Intersect"); com_Bar = var_Bar;
		com_Bar.Color(WinApi::RGB2int(255,0,0));
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Task"); com_Bar = var_Bar;
		com_Bar.OverlaidType(0/*exOverlaidBarsNone*/);
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar = COM::createFromObject(com_Bars).Copy("Task","Task-Transparent"); com_Bar = var_Bar;
			com_Bar.OverlaidType(0/*exOverlaidBarsNone*/);
			com_Bar.Def(19/*exBarTransparent*/,COMVariant::createFromInt(50));
			com_Bar.Pattern(32/*exPatternBox*/);
			com_Bar.Color(WinApi::RGB2int(0,0,0));
			com_Bar.StartColor(WinApi::RGB2int(80,80,255));
			com_Bar.EndColor(com_Bar.StartColor());
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar1 = COM::createFromObject(com_Bars).Copy("Task","Task-Offset"); com_Bar1 = var_Bar1;
		com_Bar1.OverlaidType(1/*exOverlaidBarsOffset*/);
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar1 = COM::createFromObject(com_Bars).Copy("Task","Task-OffsetTransparent"); com_Bar1 = var_Bar1;
			com_Bar1.OverlaidType(257/*exOverlaidBarsTransparent | exOverlaidBarsOffset*/);
			com_Bar1.Overlaid(256/*exOverlaidBarsTransparent*/,COMVariant::createFromInt(75));
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar2 = COM::createFromObject(com_Bars).Copy("Task","Task-Intersect"); com_Bar2 = var_Bar2;
			com_Bar2.OverlaidType(2/*exOverlaidBarsIntersect*/);
			com_Bar2.Overlaid(2/*exOverlaidBarsIntersect*/,"Intersect");
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar3 = COM::createFromObject(com_Bars).Copy("Task","Task-Stack"); com_Bar3 = var_Bar3;
		com_Bar3.OverlaidType(3/*exOverlaidBarsStack*/);
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar3 = COM::createFromObject(com_Bars).Copy("Task","Task-StackAutoArrange"); com_Bar3 = var_Bar3;
			com_Bar3.OverlaidType(515/*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/);
			com_Bar3.Color(WinApi::RGB2int(255,0,0));
			com_Bar3.OverlaidGroup("Task");
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar4 = COM::createFromObject(com_Bars).Copy("Task","Task-Cascade"); com_Bar4 = var_Bar4;
			com_Bar4.OverlaidType(4/*exOverlaidBarsCascade*/);
			com_Bar4.Color(WinApi::RGB2int(255,0,0));
			com_Bar4.OverlaidGroup("Task");
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar5 = COM::createFromObject(com_Bars).Copy("Task","Task-Strict"); com_Bar5 = var_Bar5;
			com_Bar5.OverlaidType(8195/*exOverlaidBarsStrict | exOverlaidBarsStack*/);
			com_Bar5.OverlaidGroup("Task");
			com_Bar5.Color(WinApi::RGB2int(255,0,0));
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.InsertItem(0,"Task","Overlaid-None");
		com_Items.InsertItem(0,"Task-Transparent","Overlaid-Semi-Transparent");
		com_Items.InsertItem(0,"Task-Offset","Overlaid-Offset");
		com_Items.InsertItem(0,"Task-OffsetTransparent","Overlaid-OffsetTransparent");
		com_Items.InsertItem(0,"Task-Intersect","Overlaid-Intersect");
		com_Items.InsertItem(0,"Task-Stack","Overlaid-Stack");
		h = com_Items.InsertItem(0,"Task-StackAutoArrange","Overlaid-StackAutoArrange");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/7/2001",213)),COMVariant::createFromDate(str2Date("1/9/2001",213)),"T1");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/3/2001",213)),COMVariant::createFromDate(str2Date("1/5/2001",213)),"T2");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/4/2001",213)),COMVariant::createFromDate(str2Date("1/7/2001",213)),"T3");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/5/2001",213)),COMVariant::createFromDate(str2Date("1/8/2001",213)),"T4");
		h = com_Items.InsertItem(0,"Task-Cascade","Overlaid-Cascade");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/7/2001",213)),COMVariant::createFromDate(str2Date("1/9/2001",213)),"T1");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/3/2001",213)),COMVariant::createFromDate(str2Date("1/5/2001",213)),"T2");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/4/2001",213)),COMVariant::createFromDate(str2Date("1/7/2001",213)),"T3");
		com_Items.AddBar(h,"Task",COMVariant::createFromDate(str2Date("1/5/2001",213)),COMVariant::createFromDate(str2Date("1/8/2001",213)),"T4");
		com_Items.ItemBar(h,"<A*>",52/*exBarOverlaidKey*/,"A");
		com_Items.ItemBar(h,"<T*>",52/*exBarOverlaidKey*/,"T");
		h = com_Items.InsertItem(0,"Task","Overlaid-StackStrict");
		com_Items.AddBar(h,"Task-Strict",COMVariant::createFromDate(str2Date("1/7/2001",213)),COMVariant::createFromDate(str2Date("1/9/2001",213)),"T1");
		com_Items.ItemBar(0,"<*>",3/*exBarCaption*/,"<%=%9%>");
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,164);
}
*/
2035
FilterBarCaption ALLUI Keyword ( sample 3, result, leaf )

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items,com_Items1;
	COMVariant val;
	anytype var_Items,var_Items1;
	int l;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.ItemBackColor(_Item,WinApi::RGB2int(240,240,240));
		val = com_Items.CellValue(_Item,com_Items.GroupItem(_Item));
		com_Items.CellState(_Item,com_Items.GroupItem(_Item),exg2antt1.FormatABC("A = `Checked` ? 1 : 0",val));
	var_Items1 = exg2antt1.Items(); com_Items1 = var_Items1;
		com_Items1.ItemDividerLine(_Item,0/*EmptyLine*/);
		com_Items1.AddBar(_Item,"Summary",COMVariant::createFromDate(str2Date("12/2/2017",213)),COMVariant::createFromDate(str2Date("12/2/2017",213)));
		com_Items1.DefineSummaryBars(_Item,"",-3,"");
		l = com_Items1.GroupItem(_Item);
		com_Items1.CellSingleLine(_Item,l,false);
		com_Items1.CellBold(_Item,l,true);
	exg2antt1.Chart().ItemBackColor(_Item,WinApi::RGB2int(240,240,240));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exg2antt1.FormatABC("value + 1",exg2antt1.Items().ItemToIndex(_Item));
	exg2antt1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Bar,com_Chart,com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Items;
	COMVariant i;
	anytype var_Bar,var_Chart,var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Items;
	int h;
	str var_s,var_s1,var_s2;
	;

	super();

	exg2antt1.BeginUpdate();
	var_s = "gBFLBCJwBAEHhEJAAEhABOUGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADCMQwAFBIbhrE4ZBjHGQRUgyI43RhHUBzVI";
	var_s = var_s + "UBxDEaTZLlEYJBgeHYhDJPcaUVDcWQHGyeZwjSgpKoWSJIU5NcggPDgEwTKCmKlTAKoSzJMyEmwWRAdVTZLSEaxierKPhyWT/XgAF4PfDFKRXFqXY5mKZJFqKOI8TxIN";
	var_s = var_s + "gxPQMGyrBqraLqKwQGrGCQKSBhUZ3dS2JR3OSlYRuQAMVgOXoDZhPWZXbDtSzPE63NgtOR5DiGWalABoeoxRa9cz3ViCJSrGTqIoINIzZLHFQbPpdAYdP6BeIjXhhZxB";
	var_s = var_s + "BuLZXmEOh9CcNoni2N4MjWVodh+DpfBeLJinsWR9AyYwVAkGBhEAFphGiRogDEGBamkFgtjcZgHiMbgehYaQhAIEIREAaQYkcQZUHIGRUGQDBOEaBAhDYDxGkMZAkCge";
	var_s = var_s + "oagYZAYEYAYIAWGhemICIFj8WIiCiFR5gkIhogmBoKGKJx2C6C5hniMgggqYwog0UoNGMZJiDiCZRgOLY0ECUAQICA==";
	exg2antt1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Summary"); com_Bar = var_Bar;
			com_Bar.StartShape(0/*exShapeIconEmpty*/);
			com_Bar.EndShape(0/*exShapeIconEmpty*/);
			com_Bar.Shape(1/*exShapeSolid*/);
			com_Bar.Color(0x1000000);
			com_Bar.Def(3/*exBarCaption*/,"<%=%513%>");
			com_Bar.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
	var_s1 = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s1 = var_s1 + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s1 = var_s1 + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s1 = var_s1 + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exg2antt1.Images(COMVariant::createFromStr(var_s1));
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add("Check")); com_Column2 = var_Column2;
		com_Column2.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exg2antt1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 rpos ``");
		com_Column4.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	var_s2 = "(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `";
	var_s2 = var_s2 + "[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match";
	var_s2 = var_s2 + "itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + leafitemcount + ` result(s)` ) : (`<r><fgcolor=808080>`+ leafitemcount + ` ";
	var_s2 = var_s2 + "item(s)`) )))";
	exg2antt1.FilterBarCaption(var_s2);
	exg2antt1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	exg2antt1.AllowGroupBy(true);
	exg2antt1.SortBarVisible(true);
	var_Column5 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column5 = var_Column5;
		com_Column5.FormatColumn("%CS2 ? `Checked` : `Unchecked`");
		com_Column5.SortOrder(1/*SortAscending*/);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2034
A black portion is shown while I am using the BackColorAlternate with EBN colors. What can I do

public void init()
{
	COM com_Column,com_Column1,com_ConditionalFormat,com_Items;
	anytype var_Column,var_Column1,var_ConditionalFormat,var_Items;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.ColumnAutoResize(true);
	exg2antt1.DefaultItemHeight(20);
	var_s = "gBFLBCJwBAEHhEJAAEhIDhAxHAxg0HG0Mg4xGI3HMOig3GcJiYAf8jAEhhUnAAyhEqg8hk0oAsIjgAiAwmYxGA4mYzGwwkI0i0ooUnB0IBMIl1Dg8zmYyGolptPkI1mY";
	var_s = var_s + "1GAll9KoUslNIrVCqNQldShFUstXAVfrVcrlZtVhuFnsUHq1zoczoQGhFBkNpg6zbDykUkhsPHE2h85nc9n8xtVDtlex9Msd2p1YstVq9ux8HyMtzuFz1PsNTzQlv2hh";
	var_s = var_s + "WfkuqpeVuN0q+nvEooN5veSAGpkb/ACcZrvhU3w83nM/poxGuchGpoVBvWgg+8knA4WimnFxI45Er5XOlHMg/Q3XU33W4ew9Wyu11mchDagcO7zus8VDoNBBEIKBpMY6";
	var_s = var_s + "DqOQyokhA/IQIQmwMk4bIQFDcoO6LWgwhQkNcABwEyAB5GwWbet6cRQg3DENQ5D8QxADZvEkAB8nabsURGeBpFM3pwE2AEZRpDx/neZpOR3Dz9oO/r/wCMoZNTBQAQRJ";
	var_s = var_s + "SEwYg8HPGhEIoNCaEwq10gQ2WcRt7LcRxRFpuxUAEURQ3sczBEMgTTG8gN7HpOSEAEiQBAQZpmQ0DibPUFwbKcHwkhQoQtNQNzNEMbABOKDy/DMYQzHLeoPL0OTJSUd0";
	var_s = var_s + "pHcxTewk5zrIygIRPslz4lEngBKIAQivgASs/kLSBTlO00f8t0vGcgUbDlDRjXLCUNRERRvRgAHW2oAICA==";
	exg2antt1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Position")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("1 rindex ``");
		com_Column1.Visible(false);
	var_ConditionalFormat = COM::createFromObject(exg2antt1.ConditionalFormats()).Add("%C1 mod 2"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.BackColor(0x1000000);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
		com_Items.AddItem("Item 4");
	exg2antt1.EndUpdate();
}
2033
How can I specify alternate background colors for each root item, similar with BackColorAlternate

public void init()
{
	COM com_Column,com_Column1,com_ConditionalFormat,com_Items;
	anytype var_Column,var_Column1,var_ConditionalFormat,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Position")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("( ( 1:=( ( 0:=(1 rpos '') ) lfind `.`) ) < 0 ? =:0 : (=:0 left =:1) )");
		com_Column1.Visible(false);
	var_ConditionalFormat = COM::createFromObject(exg2antt1.ConditionalFormats()).Add("%C1 mod 2"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.BackColor(WinApi::RGB2int(240,240,240));
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		h = com_Items.AddItem("Root 3");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	exg2antt1.EndUpdate();
}
2032
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 4)

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	exg2antt1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_s = "gBFLBWIgBAEHhEJAEGg6VAkHeLpgwChAOhULB8XAUUg8MAAREEHGMcgRCJ0ei8dhABDEcQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGcT";
	var_s = var_s + "SBCIZBqEqSZLiEZRQiiCYsS5GQBRWAkEwiBiEQTjea5CgOIAFS7LIqjRQEBxhIaZYIGaiQADENo9TxIMZAfBIHShK6NJABCCSQKkYx0HScRijDIEFwGIQmbKiej4DCiC";
	var_s = var_s + "QQW7OYYRVCNMQSfa8HivJyrcamfp/YBgOBYHb1eLVPR5LwfPCGUw1P6PLxkORZHimK4tSLHV7xVpMIwZFafIQhCCoHomS5NU7UNR0TQUFx9FaGX7rDDsGwLAJ6XRgF4b";
	var_s = var_s + "g2VpnHePpenAN4bH2GwHFmApSjEGBLnWOpRGOTBZHOegrE6BxPiWVJqCweQrn0LgJAWJBjwgaw1gKO5HmWch5h+fovF+G5bmich4BgfZkB8dynRUVYqiUR5rnmex/F6N";
	var_s = var_s + "4tn2AJfnebZ3DEXw3HWXgzAyIwgicKJKBKEIhCeCgiHyHYFEmSAFmqBghFIdgSCeIJygYDAyAgJx6AoIINAMOJNCgCZCGoGoLmMCI+CwJoihMNglCCIhzFCUg0EmMhgh";
	var_s = var_s + "WDBkAiQg9CUY4jEYN4Jk2IxklYJoJHIUg+CSZJSESFwkkkGI+FOFIJEIRhPhMCRJCSVoRrSBhiDgTZjHYT4PEkYhwhgJYm0SaIaiaSYuE+GQNlmCIBGCJxjhiZQ5AkMh";
	var_s = var_s + "Ag6ExJCkPhPguaAiFYUAlAkKZ0g6HoOEmWR/GHcA4m0OwIlIJIHCRgQshGJhpjoaocieaZiC6GAimkUgehIOwnGYGYIGkah6jaE4rg6SpCjKK5rEOMYlGIGIihKOgglo";
	var_s = var_s + "Foqj6L5aGaBo6CkGIkAQjiPpCAAaJILCTJQlKPACDaXJgmSaJsnCdJ4nygKEoijKQpSmKcqCpKoqysK0rivLAsSyLMtC1LYty4Lkui7LwvS+L8wDBMIwzEMUxjHMgyTK";
	var_s = var_s + "MszDNM4zzQNE0jTNQ1TWNc2DZNo2zcN03jfOA4TiOM5DlOY5zoOk6jrOw7TuO88DxPI8z0PU9j3Pg+T6Ps/D9P4/0AQFAkDQRBUGQdCEJQpC0MQ1DkPRBEUSRNFEVBhF";
	var_s = var_s + "kXRhGQ9D6Dxfh+W5gGGd4QH2XQjCmDpFFaKoVB+D5Xmed5+H8YAHnIAh9EwV5Fl0d4MkMKJICmSgygSJAoEmMUCIPgnDCCIOQFYCxJjwFoCcA4kxoF+AIJkAgExegDEg";
	var_s = var_s + "EYQInAzCUAIOEGgfxiiRDYF1Q4EQ2BSCaEQYwbAiKREMpRSymFNDIAkAxT6oVRgSA2qdVKq1WqvVirMZQUhSCnBUMoIgoQRgnGSIQUgkg1hIHYAkAYMROAmHiLsE4xxS";
	var_s = var_s + "CxBwEwCQ0wmDdBsE0GYXBtg2CSPMFIuwYiQBYBQeAcwOCnBCCZgw0g0glBONAQgqQThCGgPQGoBQfiRGmOEZIPAXjsBoPAO4HRThhA0EQSA5BAgaCKJIGg3QdhOCmNUB";
	var_s = var_s + "oQAijTCIF0FwQxpCHDIPAYYMQGgtCmFcaQtRAjZCyFYSojQ2B2BoKwIYFApBXEIBsIQ1QsAWAWEwaA1xCgjAoIAQBAQ=";
	exg2antt1.VisualDesign(var_s);
	exg2antt1.Columns().Add("Column");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child");
	exg2antt1.EndUpdate();
}
2031
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 3)

public void init()
{
	COM com_Appearance,com_Items;
	anytype var_Appearance,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Appearance = exg2antt1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB";
		var_s = var_s + "cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD";
		var_s = var_s + "xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l";
		var_s = var_s + "lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5JlgX";
		var_s = var_s + "IcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRg";
		var_s = var_s + "wZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMI";
		var_s = var_s + "NCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=";
		com_Appearance.Add(3,COMVariant::createFromStr(var_s));
		com_Appearance.Add(1,"CP:3 -2 -2 2 2");
		var_s1 = "gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB";
		var_s1 = var_s1 + "cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD";
		var_s1 = var_s1 + "xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l";
		var_s1 = var_s1 + "lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCEe";
		var_s1 = var_s1 + "Bkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOF";
		var_s1 = var_s1 + "SFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJ";
		var_s1 = var_s1 + "tDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=";
		com_Appearance.Add(4,COMVariant::createFromStr(var_s1));
		com_Appearance.Add(2,"CP:4 -2 -2 2 2");
	exg2antt1.LinesAtRoot(1/*exGroupLinesAtRoot*/);
	exg2antt1.HasButtons(4/*exCustom*/);
	exg2antt1.HasButtonsCustom(0,16777216);
	exg2antt1.HasButtonsCustom(1,33554432);
	exg2antt1.Columns().Add("Column");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child");
	exg2antt1.EndUpdate();
}
2030
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 2)

public void init()
{
	COM com_Appearance,com_Items;
	anytype var_Appearance,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Appearance = exg2antt1.VisualAppearance(); com_Appearance = var_Appearance;
		com_Appearance.Add(1,"XP:TREEVIEW 2 1");
		com_Appearance.Add(2,"XP:TREEVIEW 2 2");
	exg2antt1.Background(180/*exTreeGlyphOpen*/,0x1000000);
	exg2antt1.Background(181/*exTreeGlyphClose*/,0x2000000);
	exg2antt1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exg2antt1.Columns().Add("Column");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child");
	exg2antt1.EndUpdate();
}
2029
How can I find if the control is running in DPI mode
public void init()
{
	;

	super();

	print( exg2antt1.FormatABC("dpi = 1 ? `normal/stretch mode` : `dpi mode`") );
}
2028
How can I change the visual appearance of the +/- buttons (method 1)

public void init()
{
	COM com_Appearance,com_Items;
	anytype var_Appearance,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Appearance = exg2antt1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB";
		var_s = var_s + "cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD";
		var_s = var_s + "xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l";
		var_s = var_s + "lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5JlgX";
		var_s = var_s + "IcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRg";
		var_s = var_s + "wZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMI";
		var_s = var_s + "NCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
		var_s1 = "gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB";
		var_s1 = var_s1 + "cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD";
		var_s1 = var_s1 + "xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l";
		var_s1 = var_s1 + "lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCEe";
		var_s1 = var_s1 + "Bkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOF";
		var_s1 = var_s1 + "SFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJ";
		var_s1 = var_s1 + "tDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s1));
	exg2antt1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exg2antt1.Background(180/*exTreeGlyphOpen*/,0x1000000);
	exg2antt1.Background(181/*exTreeGlyphClose*/,0x2000000);
	exg2antt1.Columns().Add("Column");
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child");
	exg2antt1.EndUpdate();
}
2027
How can I add a summary bar once the user group by a column

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	int l;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.ItemDividerLine(_Item,0/*EmptyLine*/);
		com_Items.AddBar(_Item,"Summary",COMVariant::createFromDate(str2Date("12/2/2017",213)),COMVariant::createFromDate(str2Date("12/2/2017",213)));
		com_Items.DefineSummaryBars(_Item,"",-3,"");
		l = com_Items.GroupItem(_Item);
		com_Items.CellSingleLine(_Item,l,false);
		com_Items.CellBold(_Item,l,true);
		com_Items.ItemBackColor(_Item,WinApi::RGB2int(190,190,190));
	exg2antt1.Chart().ItemBackColor(_Item,WinApi::RGB2int(190,190,190));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/10/2017",213)));
}

public void init()
{
	COM com_Bar,com_Chart,com_Column,com_Column1,com_Columns,com_Items;
	anytype var_Bar,var_Chart,var_Column,var_Column1,var_Columns,var_Items;
	int h;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_s = "gBFLBCJwBAEHhEJAAEhABOUGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADCMQwAFBIbhrE4ZBjHGQRUgyI43RhHUBzVI";
	var_s = var_s + "UBxDEaTZLlEYJBgeHYhDJPcaUVDcWQHGyeZwjSgpKoWSJIU5NcggPDgEwTKCmKlTAKoSzJMyEmwWRAdVTZLSEaxierKPhyWT/XgAF4PfDFKRXFqXY5mKZJFqKOI8TxIN";
	var_s = var_s + "gxPQMGyrBqraLqKwQGrGCQKSBhUZ3dS2JR3OSlYRuQAMVgOXoDZhPWZXbDtSzPE63NgtOR5DiGWalABoeoxRa9cz3ViCJSrGTqIoINIzZLHFQbPpdAYdP6BeIjXhhZxB";
	var_s = var_s + "BuLZXmEOh9CcNoni2N4MjWVodh+DpfBeLJinsWR9AyYwVAkGBhEAFphGiRogDEGBamkFgtjcZgHiMbgehYaQhAIEIREAaQYkcQZUHIGRUGQDBOEaBAhDYDxGkMZAkCge";
	var_s = var_s + "oagYZAYEYAYIAWGhemICIFj8WIiCiFR5gkIhogmBoKGKJx2C6C5hniMgggqYwog0UoNGMZJiDiCZRgOLY0ECUAQICA==";
	exg2antt1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,342);
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Summary"); com_Bar = var_Bar;
			com_Bar.StartShape(0/*exShapeIconEmpty*/);
			com_Bar.EndShape(0/*exShapeIconEmpty*/);
			com_Bar.Shape(1/*exShapeSolid*/);
			com_Bar.Color(0x1000000);
			com_Bar.Def(3/*exBarCaption*/,"<%=%513%>");
			com_Bar.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		com_Columns.Add("C2");
		com_Columns.Add("C3");
		var_Column = COM::createFromVariant(com_Columns.Add("Pos")); com_Column = var_Column;
			com_Column.FormatColumn("1 pos ``");
			com_Column.AllowGroupBy(false);
			com_Column.Position(0);
			com_Column.Width(48);
			com_Column.AllowSizing(false);
	exg2antt1.SortBarVisible(true);
	exg2antt1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exg2antt1.AllowGroupBy(true);
	exg2antt1.HasLines(0/*exNoLine*/);
	exg2antt1.LinesAtRoot(0/*exNoLinesAtRoot*/);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
	var_Column1 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.SortOrder(1/*SortAscending*/);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,342);
}
*/
2026
Is it possible to display no +/- button for grouped items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	int l;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.ItemDividerLine(_Item,0/*EmptyLine*/);
		com_Items.AddBar(_Item,"Progress",COMVariant::createFromDate(str2Date("12/2/2017",213)),COMVariant::createFromDate(str2Date("12/2/2017",213)));
		com_Items.DefineSummaryBars(_Item,"",-3,"");
		l = com_Items.GroupItem(_Item);
		com_Items.CellSingleLine(_Item,l,false);
		com_Items.CellBold(_Item,l,true);
		com_Items.ItemBackColor(_Item,WinApi::RGB2int(190,190,190));
	exg2antt1.Chart().ItemBackColor(_Item,WinApi::RGB2int(190,190,190));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/10/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Columns,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Columns,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,342);
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		com_Columns.Add("C2");
		com_Columns.Add("C3");
		var_Column = COM::createFromVariant(com_Columns.Add("Pos")); com_Column = var_Column;
			com_Column.FormatColumn("1 pos ``");
			com_Column.AllowGroupBy(false);
			com_Column.Position(0);
			com_Column.Width(48);
			com_Column.AllowSizing(false);
	exg2antt1.SortBarVisible(true);
	exg2antt1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exg2antt1.AllowGroupBy(true);
	exg2antt1.HasLines(0/*exNoLine*/);
	exg2antt1.LinesAtRoot(0/*exNoLinesAtRoot*/);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
	var_Column1 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.SortOrder(1/*SortAscending*/);
		com_Column1.Alignment(1/*CenterAlignment*/);
		com_Column1.Def(4/*exCellBackColor*/,COMVariant::createFromInt(15790320));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,342);
}
*/
2025
How can I change the label, caption or the formula of the grouped items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddBar(_Item,"Progress",COMVariant::createFromDate(str2Date("12/2/2017",213)),COMVariant::createFromDate(str2Date("12/2/2017",213)));
		com_Items.DefineSummaryBars(_Item,"",-3,"");
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/10/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,342);
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("C1")); com_Column = var_Column;
			com_Column.GroupByTotalField("");
			com_Column.GroupByFormatCell("upper(value)");
		com_Columns.Add("C2");
		com_Columns.Add("C3");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Pos")); com_Column1 = var_Column1;
			com_Column1.FormatColumn("1 pos ``");
			com_Column1.AllowGroupBy(false);
			com_Column1.Position(0);
			com_Column1.Width(48);
			com_Column1.AllowSizing(false);
	exg2antt1.SortBarVisible(true);
	exg2antt1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exg2antt1.AllowGroupBy(true);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
	var_Column2 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column2 = var_Column2;
	com_Column2.SortOrder(1/*SortAscending*/);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,342);
}
*/
2024
How can I change the aspect of grouped items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	int l;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.ItemDividerLine(_Item,0/*EmptyLine*/);
		com_Items.AddBar(_Item,"Progress",COMVariant::createFromDate(str2Date("12/2/2017",213)),COMVariant::createFromDate(str2Date("12/2/2017",213)));
		com_Items.DefineSummaryBars(_Item,"",-3,"");
		l = com_Items.GroupItem(_Item);
		com_Items.CellSingleLine(_Item,l,false);
		com_Items.CellBold(_Item,l,true);
		com_Items.ItemBackColor(_Item,WinApi::RGB2int(190,190,190));
	exg2antt1.Chart().ItemBackColor(_Item,WinApi::RGB2int(190,190,190));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/10/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Columns,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Columns,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,342);
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		com_Columns.Add("C2");
		com_Columns.Add("C3");
		var_Column = COM::createFromVariant(com_Columns.Add("Pos")); com_Column = var_Column;
			com_Column.FormatColumn("1 pos ``");
			com_Column.AllowGroupBy(false);
			com_Column.Position(0);
			com_Column.Width(48);
			com_Column.AllowSizing(false);
	exg2antt1.SortBarVisible(true);
	exg2antt1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exg2antt1.AllowGroupBy(true);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
	var_Column1 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
	com_Column1.SortOrder(1/*SortAscending*/);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,342);
}
*/
2023
How can I collapse all items when the user performs a grouping

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.ExpandItem(_Item,false);
		com_Items.ItemDividerLine(_Item,0/*EmptyLine*/);
		com_Items.AddBar(_Item,"Progress",COMVariant::createFromDate(str2Date("12/2/2017",213)),COMVariant::createFromDate(str2Date("12/2/2017",213)));
		com_Items.DefineSummaryBars(_Item,"",-3,"");
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/10/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Columns,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Columns,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,342);
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		com_Columns.Add("C2");
		com_Columns.Add("C3");
		var_Column = COM::createFromVariant(com_Columns.Add("Pos")); com_Column = var_Column;
			com_Column.FormatColumn("1 pos ``");
			com_Column.AllowGroupBy(false);
			com_Column.Position(0);
			com_Column.Width(48);
			com_Column.AllowSizing(false);
	exg2antt1.SortBarVisible(true);
	exg2antt1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exg2antt1.AllowGroupBy(true);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
	var_Column1 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
	com_Column1.SortOrder(1/*SortAscending*/);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,342);
}
*/
2022
Is it possible to select columns that user can drop to the sort bar, when using the Group By feature

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/10/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Columns,com_Items;
	anytype var_Chart,var_Column,var_Columns,var_Items;
	int h;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,342);
	var_Columns = exg2antt1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		com_Columns.Add("C2");
		com_Columns.Add("C3");
		var_Column = COM::createFromVariant(com_Columns.Add("Pos")); com_Column = var_Column;
			com_Column.FormatColumn("1 pos ``");
			com_Column.AllowGroupBy(false);
			com_Column.Position(0);
			com_Column.Width(48);
			com_Column.AllowSizing(false);
	exg2antt1.SortBarVisible(true);
	exg2antt1.SortBarCaption("<fgcolor=FF0000>Try to drag the Pos column here.");
	exg2antt1.AllowGroupBy(true);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item A");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem A.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem A.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem B.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem B.2");
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,342);
}
*/
2021
How can I filter for the type of the bars I have in my chart

public void init()
{
	COM com_Bar,com_Bar1,com_Bar2,com_Bars,com_Chart,com_Column,com_Column1,com_Column2,com_Items;
	anytype var_Bar,var_Bar1,var_Bar2,var_Bars,var_Chart,var_Column,var_Column1,var_Column2,var_Items;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("11/28/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,0);
		var_Bar = COM::createFromObject(com_Chart.Bars()).Item("Task"); com_Bar = var_Bar;
			com_Bar.Def(3/*exBarCaption*/,"<%=%0%>");
			com_Bar.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar1 = COM::createFromObject(com_Bars).Copy("Task","GTask"); com_Bar1 = var_Bar1;
			com_Bar1.Def(3/*exBarCaption*/,"<%=%0%>");
			com_Bar1.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
			com_Bar1.Color(WinApi::RGB2int(0,255,0));
		var_Bars = COM::createFromObject(com_Chart.Bars()); com_Bars = var_Bars;
		var_Bar2 = COM::createFromObject(com_Bars).Copy("Task","RTask"); com_Bar2 = var_Bar2;
			com_Bar2.Def(3/*exBarCaption*/,"<%=%0%>");
			com_Bar2.Def(4/*exBarHAlignCaption*/,COMVariant::createFromInt(18));
			com_Bar2.Color(WinApi::RGB2int(255,0,0));
		com_Chart.ColumnsFormatLevel("0");
	exg2antt1.OnResizeControl(129/*exDisableSplitter | exResizeChart*/);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Type")); com_Column1 = var_Column1;
		com_Column1.Def(19/*exCellValueToItemBarKey*/,"");
		com_Column1.Def(18/*exCellValueToItemBarProperty*/,COMVariant::createFromInt(0));
		com_Column1.Visible(false);
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AllowCellValueToItemBar(true);
		com_Items.AddBar(com_Items.AddItem("Item 1"),"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/12/2017",213)));
		com_Items.AddBar(com_Items.AddItem("Item 2"),"GTask",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/12/2017",213)));
		com_Items.AddBar(com_Items.AddItem("Item 3"),"RTask",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/12/2017",213)));
		com_Items.AddBar(com_Items.AddItem("Item 4"),"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/12/2017",213)));
		com_Items.AddBar(com_Items.AddItem("Item 5"),"GTask",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/12/2017",213)));
		com_Items.AddBar(com_Items.AddItem("Item 6"),"RTask",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/12/2017",213)));
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	var_s = "(( ( all replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<";
	var_s = var_s + "s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchit";
	var_s = var_s + "emcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount ";
	var_s = var_s + "+ ` item(s)`) )))";
	exg2antt1.FilterBarCaption(var_s);
	exg2antt1.FilterBarPromptVisible(2579/*exFilterBarCompact | exFilterBarShowCloseIfRequired | exFilterBarSingleLine | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column2 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(1)); com_Column2 = var_Column2;
		com_Column2.FilterType(240/*exFilter*/);
		com_Column2.Filter("GTask|RTask");
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,0);
}
*/
2020
How can I display the control's filter bar in the Items section only, as it was displayed before

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Column3,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Column3,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column2 = var_Column2;
		com_Column2.AllowSizing(false);
		com_Column2.AllowSort(false);
		com_Column2.Width(32);
		com_Column2.FormatColumn("1 apos ``");
		com_Column2.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		com_Items.CellValue(com_Items.AddItem("Item B"),COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exg2antt1.FilterBarPromptVisible(4096/*exFilterBarShort*/);
	var_Column3 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(1)); com_Column3 = var_Column3;
		com_Column3.FilterType(3/*exPattern*/);
		com_Column3.Filter("*B");
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2019
FilterBarCaption ALL Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exg2antt1.FormatABC("value + 1",exg2antt1.Items().ItemToIndex(_Item));
	exg2antt1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Editor,com_Items;
	COMVariant i;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Editor,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exg2antt1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add("Check")); com_Column2 = var_Column2;
		var_Editor = com_Column2.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exg2antt1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 apos ``");
		com_Column4.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	var_s1 = "(( ( all replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<";
	var_s1 = var_s1 + "s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchit";
	var_s1 = var_s1 + "emcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount ";
	var_s1 = var_s1 + "+ ` item(s)`) )))";
	exg2antt1.FilterBarCaption(var_s1);
	exg2antt1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column5 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column5 = var_Column5;
		com_Column5.FilterType(240/*exFilter*/);
		com_Column5.Filter("Item A|Item B");
	var_Column6 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column6 = var_Column6;
	com_Column6.Filter(1);
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2018
FilterBarCaption ALL Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exg2antt1.FormatABC("value + 1",exg2antt1.Items().ItemToIndex(_Item));
	exg2antt1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Editor,com_Items;
	COMVariant i;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Editor,var_Items;
	int h;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exg2antt1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add("Check")); com_Column2 = var_Column2;
		var_Editor = com_Column2.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exg2antt1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 apos ``");
		com_Column4.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	exg2antt1.FilterBarCaption("all");
	exg2antt1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column5 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column5 = var_Column5;
		com_Column5.FilterType(240/*exFilter*/);
		com_Column5.Filter("Item A|Item B");
	var_Column6 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column6 = var_Column6;
	com_Column6.Filter(1);
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2017
FilterBarCaption ALLUI Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exg2antt1.FormatABC("value + 1",exg2antt1.Items().ItemToIndex(_Item));
	exg2antt1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Editor,com_Items;
	COMVariant i;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Editor,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exg2antt1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add("Check")); com_Column2 = var_Column2;
		var_Editor = com_Column2.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exg2antt1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 apos ``");
		com_Column4.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	var_s1 = "(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `";
	var_s1 = var_s1 + "[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match";
	var_s1 = var_s1 + "itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun";
	var_s1 = var_s1 + "t + ` item(s)`) )))";
	exg2antt1.FilterBarCaption(var_s1);
	exg2antt1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column5 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column5 = var_Column5;
		com_Column5.FilterType(240/*exFilter*/);
		com_Column5.Filter("Item A|Item B");
	var_Column6 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column6 = var_Column6;
	com_Column6.Filter(1);
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2016
FilterBarCaption ALLUI Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exg2antt1.FormatABC("value + 1",exg2antt1.Items().ItemToIndex(_Item));
	exg2antt1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Editor,com_Items;
	COMVariant i;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Editor,var_Items;
	int h;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exg2antt1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add("Check")); com_Column2 = var_Column2;
		var_Editor = com_Column2.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exg2antt1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 apos ``");
		com_Column4.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	exg2antt1.FilterBarCaption("allui");
	exg2antt1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column5 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column5 = var_Column5;
		com_Column5.FilterType(240/*exFilter*/);
		com_Column5.Filter("Item A|Item B");
	var_Column6 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column6 = var_Column6;
	com_Column6.Filter(1);
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2015
FilterBarCaption AVAILABLE Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exg2antt1.FormatABC("value + 1",exg2antt1.Items().ItemToIndex(_Item));
	exg2antt1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Editor,com_Items;
	COMVariant i;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Editor,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exg2antt1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add("Check")); com_Column2 = var_Column2;
		var_Editor = com_Column2.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exg2antt1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 apos ``");
		com_Column4.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	var_s1 = "(( ( value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` ) + ` ` + ( avai";
	var_s1 = var_s1 + "lable replace `[` with `<bgcolor=C0C0C0><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` replace `<s>` with ``";
	var_s1 = var_s1 + " replace `</s>` with `` ) + `<fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount ";
	var_s1 = var_s1 + "+ 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))";
	exg2antt1.FilterBarCaption(var_s1);
	exg2antt1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column5 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column5 = var_Column5;
		com_Column5.FilterType(240/*exFilter*/);
		com_Column5.Filter("Item A|Item B");
	var_Column6 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column6 = var_Column6;
	com_Column6.Filter(1);
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2014
FilterBarCaption AVAILABLE Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COMVariant i;
	;
	i = exg2antt1.FormatABC("value + 1",exg2antt1.Items().ItemToIndex(_Item));
	exg2antt1.Items().CellImage(_Item,COMVariant::createFromInt(3),i);
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Editor,com_Items;
	COMVariant i;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Editor,var_Items;
	int h;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exg2antt1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add("Check")); com_Column2 = var_Column2;
		var_Editor = com_Column2.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterType(6/*exCheck*/);
	var_Column3 = COM::createFromVariant(exg2antt1.Columns().Add("Image")); com_Column3 = var_Column3;
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterType(10/*exImage*/);
		com_Column3.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Column4 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column4 = var_Column4;
		com_Column4.AllowSizing(false);
		com_Column4.AllowSort(false);
		com_Column4.Width(32);
		com_Column4.FormatColumn("1 apos ``");
		com_Column4.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellState(h,COMVariant::createFromInt(2),1);
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	exg2antt1.FilterBarCaption("value + ` ` + available");
	exg2antt1.FilterBarPromptVisible(3/*exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column5 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column5 = var_Column5;
		com_Column5.FilterType(240/*exFilter*/);
		com_Column5.Filter("Item A|Item B");
	var_Column6 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(2)); com_Column6 = var_Column6;
	com_Column6.Filter(1);
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2013
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 3, results )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Items;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column2 = var_Column2;
		com_Column2.AllowSizing(false);
		com_Column2.AllowSort(false);
		com_Column2.Width(32);
		com_Column2.FormatColumn("1 apos ``");
		com_Column2.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		com_Items.CellValue(com_Items.AddItem("Item B"),COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	var_s = "(`<b>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ";
	var_s = var_s + "` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )) replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace";
	var_s = var_s + " `]` with ` </b></bgcolor></fgcolor>`";
	exg2antt1.FilterBarCaption(var_s);
	exg2antt1.FilterBarPromptVisible(256/*exFilterBarToggle*/);
	var_Column3 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column3 = var_Column3;
		com_Column3.FilterType(240/*exFilter*/);
		com_Column3.Filter("Item A|Item B");
	var_Column4 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(1)); com_Column4 = var_Column4;
		com_Column4.FilterType(3/*exPattern*/);
		com_Column4.Filter("*B");
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2012
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 2 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column2 = var_Column2;
		com_Column2.AllowSizing(false);
		com_Column2.AllowSort(false);
		com_Column2.Width(32);
		com_Column2.FormatColumn("1 apos ``");
		com_Column2.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		com_Items.CellValue(com_Items.AddItem("Item B"),COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	exg2antt1.FilterBarCaption("value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>`");
	exg2antt1.FilterBarPromptVisible(256/*exFilterBarToggle*/);
	var_Column3 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column3 = var_Column3;
		com_Column3.FilterType(240/*exFilter*/);
		com_Column3.Filter("Item A|Item B");
	var_Column4 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(1)); com_Column4 = var_Column4;
		com_Column4.FilterType(3/*exPattern*/);
		com_Column4.Filter("*B");
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2011
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Col-1")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Col-2")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column2 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column2 = var_Column2;
		com_Column2.AllowSizing(false);
		com_Column2.AllowSort(false);
		com_Column2.Width(32);
		com_Column2.FormatColumn("1 apos ``");
		com_Column2.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A"),COMVariant::createFromInt(1),"Sub-Item A");
		com_Items.CellValue(com_Items.AddItem("Item B"),COMVariant::createFromInt(1),"Sub-Item B");
		com_Items.CellValue(com_Items.AddItem("Item C"),COMVariant::createFromInt(1),"Sub-Item C");
	exg2antt1.Description(11/*exFilterBarAnd*/,exg2antt1.FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",COMVariant::createFromStr(exg2antt1.Description(11/*exFilterBarAnd*/))));
	exg2antt1.FilterBarCaption("value replace `[` with `<fgcolor=808080>[` replace `]` with `]</fgcolor>`");
	exg2antt1.FilterBarPromptVisible(256/*exFilterBarToggle*/);
	var_Column3 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column3 = var_Column3;
		com_Column3.FilterType(240/*exFilter*/);
		com_Column3.Filter("Item A|Item B");
	var_Column4 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(1)); com_Column4 = var_Column4;
		com_Column4.FilterType(3/*exPattern*/);
		com_Column4.Filter("*B");
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2010
Is it possible to automatically displays the control's filter label to the right

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Item")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column1 = var_Column1;
		com_Column1.AllowSizing(false);
		com_Column1.AllowSort(false);
		com_Column1.Width(32);
		com_Column1.FormatColumn("1 apos ``");
		com_Column1.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exg2antt1.FilterBarCaption("`<r>` + value");
	exg2antt1.FilterBarPromptVisible(1280/*exFilterBarShowCloseOnRight | exFilterBarToggle*/);
	var_Column2 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column2 = var_Column2;
		com_Column2.FilterType(240/*exFilter*/);
		com_Column2.Filter("Item B");
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2009
How can I get the number of results/items being shown in the control's filter bar (sample 4)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Items;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Item")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterList(9504/*exShowExclude | exShowFocusItem | exShowCheckBox | exSortItemsAsc*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column1 = var_Column1;
		com_Column1.AllowSizing(false);
		com_Column1.AllowSort(false);
		com_Column1.Width(32);
		com_Column1.FormatColumn("1 apos ``");
		com_Column1.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.FilterBarPrompt(exg2antt1.FormatABC("`<b>` + value",COMVariant::createFromStr(exg2antt1.FilterBarPrompt())));
	var_s = "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount +";
	var_s = var_s + " 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )";
	exg2antt1.FilterBarCaption(var_s);
	exg2antt1.FilterBarPromptVisible(3591/*exFilterBarCompact | exFilterBarShowCloseOnRight | exFilterBarShowCloseIfRequired | exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2008
How can I get the number of results being shown in the control's filter bar (sample 3)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Items;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	COM::createFromVariant(exg2antt1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	var_s = "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount +";
	var_s = var_s + " 1) + ` result(s)` ) : ``)";
	exg2antt1.FilterBarCaption(var_s);
	exg2antt1.FilterBarPromptVisible(2055/*exFilterBarCompact | exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column1 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item A|Item B");
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2007
How can I get the number of results being shown in the control's filter bar (sample 2, compact)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	COM::createFromVariant(exg2antt1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.FilterBarCaption("`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? `<off -4> ` + abs(matchitemcount + 1) + ` result(s)` : ``)");
	exg2antt1.FilterBarPromptVisible(2071/*exFilterBarCompact | exFilterBarSingleLine | exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column1 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item A|Item B");
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2006
How can I get the number of results being shown in the control's filter bar (sample 1)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	COM::createFromVariant(exg2antt1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.FilterBarCaption("`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)");
	exg2antt1.FilterBarPromptVisible(7/*exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column1 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item A|Item B");
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2005
FilterBarCaption Predefined Keywords

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

// AfterExpandItem event - Fired after an item is expanded (collapsed).
void onEvent_AfterExpandItem(int   _Item)
{
	;
	exg2antt1.Refresh();
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Column2,com_Editor,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Column2,var_Editor,var_Items;
	int h;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	exg2antt1.LinesAtRoot(-1/*exLinesAtRoot*/);
	COM::createFromVariant(exg2antt1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Check")); com_Column = var_Column;
		var_Editor = com_Column.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterType(6/*exCheck*/);
	var_Column1 = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column1 = var_Column1;
		com_Column1.AllowSizing(false);
		com_Column1.AllowSort(false);
		com_Column1.Width(32);
		com_Column1.FormatColumn("1 apos ``");
		com_Column1.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		h = com_Items.AddItem("Item B");
		com_Items.CellState(com_Items.InsertItem(h,,"Sub-Item B1"),COMVariant::createFromInt(1),1);
		com_Items.InsertItem(h,,"Sub-Item B2");
		com_Items.ExpandItem(h,true);
		com_Items.AddItem("Item C");
	exg2antt1.FilterInclude(1/*exItemsWithChilds*/);
	exg2antt1.FilterBarFont(exg2antt1.Font());
	var_s = "`<fgcolor=0000FF><i>value/current</i></fgcolor>: <fgcolor=808080>` + value + `</fgcolor>` + `<br><fgcolor=0000FF><i>available</i";
	var_s = var_s + "></fgcolor>: ` + available + `<br><fgcolor=0000FF><i>allui</i></fgcolor>: ` + allui + `<br><fgcolor=0000FF><i>all</i></fgcolor>:";
	var_s = var_s + " ` + all + `<br><fgcolor=0000FF><i>itemcount</i></fgcolor>: <fgcolor=808080>` + itemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><";
	var_s = var_s + "i>visibleitemcount</i></fgcolor>: <fgcolor=808080>` + visibleitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>matchitemcount</i";
	var_s = var_s + "></fgcolor>: <fgcolor=808080>` + matchitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>promptpattern</i></fgcolor>: <fgcolor=80";
	var_s = var_s + "8080>` + promptpattern + `</fgcolor>`+ `<br><fgcolor=0000FF><i>leafitemcount</i></fgcolor>: <fgcolor=808080>` + leafitemcount + ";
	var_s = var_s + "`</fgcolor>`";
	exg2antt1.FilterBarCaption(var_s);
	exg2antt1.FilterBarPromptPattern("B");
	exg2antt1.FilterBarPromptVisible(7/*exFilterBarCaptionVisible | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column2 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column2 = var_Column2;
		com_Column2.FilterType(240/*exFilter*/);
		com_Column2.Filter("Item A|Item B");
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2004
I am using filter prompt feature, and also column's filter, just wondering if possible to compact displaying the filter bar so it won't show on multiple lines

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Column1,com_Items;
	anytype var_Chart,var_Column,var_Column1,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	COM::createFromVariant(exg2antt1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exg2antt1.FilterBarFont(exg2antt1.Font());
	exg2antt1.FilterBarCaption("`<r><i><fgcolor=808080><upline><solidline><sha ;;0>` + value");
	exg2antt1.FilterBarPromptPattern("B");
	exg2antt1.FilterBarPromptVisible(2067/*exFilterBarCompact | exFilterBarSingleLine | exFilterBarVisible | exFilterBarPromptVisible*/);
	var_Column1 = COM::createFromObject(exg2antt1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(240/*exFilter*/);
		com_Column1.Filter("Item A|Item B");
	exg2antt1.ApplyFilter();
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2003
Just wondering if it is possible to show the filter bar's close button on the right ( sample 2 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Items;
	anytype var_Chart,var_Column,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	COM::createFromVariant(exg2antt1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exg2antt1.FilterBarPromptVisible(1281/*exFilterBarShowCloseOnRight | exFilterBarToggle | exFilterBarPromptVisible*/);
	exg2antt1.FilterBarPrompt(exg2antt1.FormatABC("`<r>` + value",COMVariant::createFromStr(exg2antt1.FilterBarPrompt())));
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2002
Just wondering if it is possible to show the filter bar's close button on the right ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Chart,com_Column,com_Items;
	anytype var_Chart,var_Column,var_Items;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	exg2antt1.RightToLeft(true);
	COM::createFromVariant(exg2antt1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exg2antt1.FilterBarPromptVisible(257/*exFilterBarToggle | exFilterBarPromptVisible*/);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/
2001
How can I change the visual appearance of the filter bar's close button (EBN)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exg2antt1.Items().AddBar(_Item,"Task",COMVariant::createFromDate(str2Date("12/4/2017",213)),COMVariant::createFromDate(str2Date("12/14/2017",213)));
}

public void init()
{
	COM com_Appearance,com_Chart,com_Column,com_Items;
	anytype var_Appearance,var_Chart,var_Column,var_Items;
	str var_s;
	;

	super();

	exg2antt1.BeginUpdate();
	var_Chart = exg2antt1.Chart(); com_Chart = var_Chart;
		com_Chart.LevelCount(2);
		com_Chart.FirstVisibleDate(COMVariant::createFromDate(str2Date("12/2/2017",213)));
	/*should be called during the form's activate method*/ 	com_Chart.PaneWidth(false,256);
	var_Appearance = exg2antt1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAEhABHQDg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLOg7IJj";
		var_s = var_s + "yI4/SJAYCydKAWhxIaZKJHCZoEDaTAADCNVAQp6MEIJVbVEI0e79OgBLp/Z7kECIJJAaRjHQdJxGLA8EhtCQhCZteK6SgMKJYXhWQYRXI1JwvMBrWrdQjiOYELQtMKmS";
		var_s = var_s + "ZNLYGG4dR5SVJbcYhSYsRRFMoyDIOXYDLKsdYqSpXIThObEGgaPqJYjsUjCMKnR7HVIURrBPC9TBPE69ZgmC6ucKPX51ShKFaBWDZcwFAS+UBuYCAILiEAQGZ1XT8ORO";
		var_s = var_s + "icbgJgSTJRlCaZeDsHY7QGR4xkSYp3CaExZAQMgalQYAwjCAAfBANxcA2TgKAUOpDCGFhKg0RpXCwCwDHQHQHEyAIkCkOhbFOGA8A8DohBgRg9AccZcn8EpEjMLI2C2D";
		var_s = var_s + "YxAgQgvAIUIVkoAAPBQDJlECTZ3CCYwDACQwUA8A5MCAWAWDiQi4l8aQOEgLJuBgBgDmYFAzEoIoIl0WALgKYJbBABADAAHgHg8VAMmqCQQDMXABAATYwTmNwBDATJXA";
		var_s = var_s + "iAgjHmNQ5lgQ5QEQEQMmcWg/GwD5ylyNw2gMcJcjsBgBgOQQDDhRpVAMMwnDBFw1B0Ax8D0DxOmmJJIGQTY5hGMAwkwM4CAYLZAmAOJnAqAojiIGg6iieYkmeAYOHaKJ";
		var_s = var_s + "DCyCwjH6AoggsQpQliAJLhgaJ0CESBTnyDwjk+cg4g4P5IHIHJ+BWRRzlYWAxiOUxihsY4KjKLJRGqC44FCegkkkM58iAKAPnIWIWD8SRSFSfQnkmewUhYP4GiGKJ7G0";
		var_s = var_s + "TIbCSUoggqUo0lAQ4LnEcBcD8Coiiif4nE+eAAn2HpOkcFJqi4T5SkyMw/kqQown8IBIBOdA+A+DJrBqVxXEqYo4lCApLhGHBnD8S4ymyfxmg+cwQkQP5egOUZIWoEAk";
		var_s = var_s + "jIeIPBMBJBD+TBjBifwvkuc58hQJQPmFrYykkchclSApKjGOBuD+TRDFCfw3mmIxNi8FxFlOXhVC4aYDFyPgvg2YBcBcLZGCGCJ0DSLRzGSWQ/lmY5+mEP5gmMDBZRSM";
		var_s = var_s + "RsFsOxMhMJJ/DsTpTnwaQaE+N5ojuNhdEYNI5C4TZJO1GRDmCaxnA2Yx4n8IpIjOTBQBQC5TgyYw7gUYRYikC0BYRwsDQBoB8eA6Q2hsE0BUXgywZtYCyHMKwnxSAhAQ";
		var_s = var_s + "HkIQhRrBaDsCwA4ERiB2EWAIYIXhhiVEgAEUYwwYjyASLge4FhHgRDkM8OQih0jWPkGgBBAQ";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
	COM::createFromVariant(exg2antt1.Columns().Add("Item")).DisplayFilterButton(true);
	var_Column = COM::createFromVariant(exg2antt1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.AllowSort(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 apos ``");
		com_Column.Position(0);
	var_Items = exg2antt1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exg2antt1.FilterBarPromptVisible(257/*exFilterBarToggle | exFilterBarPromptVisible*/);
	exg2antt1.Background(1/*exFooterFilterBarButton*/,0x1000000);
	exg2antt1.EndUpdate();
}

/*
public void activate(boolean _active)
{
	;

	super(_active);

	exg2antt1.Chart().PaneWidth(false,256);
}
*/